如何结束这个循环/逻辑结束伪代码

Posted

技术标签:

【中文标题】如何结束这个循环/逻辑结束伪代码【英文标题】:How to end this loop / logically end pseudocode 【发布时间】:2014-07-01 05:05:22 【问题描述】:

我正在编写一个伪代码程序来读取客户记录,确定他们的帐户类型,然后在最后输出他们的姓名和欠款金额。我写了一个程序(几乎完成)我只是不确定如何循环它,直到没有更多的记录。你们能帮帮我吗?我最后的输出应该是客户名称和欠款。谢谢。

read_customer_record 
get num_of_records
    get customer_name
get account_type
get num_basic_channels
get num_premium_channels
calculate_rate (calcR) 
calculate_totals (calcT)
output(outp)


END

Calculate_rate (calcR)
IF account_type = personal
Basic_rateP = $5
Pre_rateP = $10
    ELSE
        Basic_rateB = $7.50
        Pre_rateB = $12.50
END

Calculate_totals (calcT, calcR)
IF account_type = personal
total = (num_basic_channels * Basic_rateP) + (num_premium_channels * Pre_rateP)
    ELSE
total = (num_basic_channels * Basic_rateB) + (num_premium_channels * Pre_rateB)
END

output (

【问题讨论】:

【参考方案1】:

你可以这样做:

>>> 打印客户姓名和欠款金额,直到客户姓名不等于空。

如果我用 C++ 编写代码,它会看起来像这样。

for(i=0;CustomerName[i]!=NULL;i++)  //Loop till there is some Customer Name exists

cout<<CustomerName[i]<<"\t"<<AmountOwed[i];  //Printing out the Data

当没有 Customer Remaining 时它将停止,当没有 Customer 时,显然没有 Amount Owed。

【讨论】:

那么我在哪里可以启动类似的 for 循环?我的其余逻辑有意义吗? 我写了循环打印结果。如果你想对记录做一些计算,你可以简单地使用数组。比如total[i]。是的,您的逻辑确实有意义,但请确保在处理 If Else 语句时小心使用括号 。【参考方案2】:

我认为你只需要在你的主程序周围包裹一个 WHILE 语句。执行此操作的方法取决于您从哪里读取客户记录。

案例 1:在许多情况下,您只能通过尝试读取结尾来判断您已完成输入流的处理。在这种情况下,您的伪代码可能如下所示:

read_customer_record 
while the previous read succeeded
    get num_of_records
    get customer_name
    get account_type
    get num_basic_channels
    get num_premium_channels
    calculate_rate (calcR) 
    calculate_totals (calcT)
    output(outp)
    read_customer_record
end

案例 2:在其他情况下,您可以在读取之前判断输入流中是否还有要读取的内容。在这种情况下,您的伪代码可能如下所示:

while there are more customer records to process
    read_customer_record
    get num_of_records
    get customer_name
    get account_type
    get num_basic_channels
    get num_premium_channels
    calculate_rate (calcR) 
    calculate_totals (calcT)
    output(outp)
end

【讨论】:

以上是关于如何结束这个循环/逻辑结束伪代码的主要内容,如果未能解决你的问题,请参考以下文章

Bellman-Ford算法的伪代码

Python while结构语句?

汇编语言--高级汇编技术

ReentrantLock获取锁释放锁源码浅析

css flexbox wrapping:模拟伪类来选择主轴/交叉轴上的开始/结束项目?

Swift 伪原子并发同步代码引起 DispatchGroup.leave() 方法不平衡调用导致 App 崩溃的解决