4

我没有在下图中使用 do-while 或 while 循环:

在此处输入图像描述

这里,A、B 和 C 是函数。如何为上图编写伪代码?

编辑:这是来自我的 C++ 编程实践。如果没有“B 循环”(或“A 循环”),我可以将其编写如下:

Start
Input x;
while(x!=2)
{
A(); Input x;
}
C();
End

但是,当“B 循环”进来时,我不知道如何包含它。

4

3 回答 3

4
Start;

Input x;

while(x!=2){ 

    if (x!=1){
        A();
    } else{ 
        B()
    }
    Input x;
}

C();

End

但请注意您使用的语言我建议您在数据采集之间添加睡眠模式(就在输入 x 之前)

于 2012-04-23T07:41:54.917 回答
2

程序做什么?用英语解释,然后写下来。然后你就有了你的伪代码。

If any input
 if input is not 1 and not 2
 return a  and do more input (? dont get the diagram here ;p)
 if input is 1
 return b and more input (??)
 else if not above
 return c and end program
于 2012-04-23T07:11:10.310 回答
2

@BaptisteGousset 的答案很好,但在某些情况下还有另一种更好的方法。可以使用 do...while 循环而不是 while 来简化代码以删除双重输入操作,但这会使比较逻辑稍微复杂一些。

Start;
Do
{
    Input x;
    if (x equals 1)
    {
        B();
    }
    elseif(x not equal to 2)
    {
        A();
    }

} While (x not equal to 2);
C();
End;

您也可以使用 goto 语句来实现这一点,但 goto 通常被认为是有害的。

一般来说,任何流程图都没有一个规范的“伪代码”答案——这取决于您愿意使用什么结构以及这些结构与您的实际任务的匹配程度。

于 2018-01-05T15:12:46.590 回答