【发布时间】:2022-01-08 02:29:49
【问题描述】:
我的 while 循环有问题,在下面链接的 png 中,你会看到我想要做什么。
如果日期是 5 3 0,它应该返回 CCCDG。出了点问题。我不能使用For 或Goto,必须使用while 或do-while。
using System;
namespace FlowChart
{
public class Program
{
public static void Main(string[] args)
{
string wprowadzoneLiczby = Console.ReadLine();
int[] arr = Array.ConvertAll(wprowadzoneLiczby.Split(' '), new Converter<string, int>(int.Parse));
while (arr[0]>0)
{
while (arr[2]>0 && arr[0]>0)
{
arr[0] -= 1;
arr[2] -= 1;
Console.Write("C");
}
while (arr[2]<0)
{
Console.Write("D");
while (arr[2]>0)
{
Console.WriteLine();
break;
}
while (arr[2]<=0)
{
Console.Write("G");
break;
}
break;
}
break;
}
while (arr[0]<0)
{
Console.Write("E");
Console.Write("G");
Console.WriteLine();
break;
}
}
}
}
【问题讨论】:
-
一个
while循环,它在末尾有一个无条件的中断,本质上只是一个if语句。 -
在
5 3 0的示例输入中,arr[2]将等于 0。当您有条件要求arr[2]不相等时,为什么任何(内部)循环都会运行到 0? -
阅读 Eric Lippert 的 How to Debug Small Programs 可能会有所帮助
-
好的,所以我有一个不同的问题,可能是一个愚蠢的问题,但是如果 while 内的 while 结束,它会回到第一个 while 或继续到下一个。
-
我想强调学习如何使用调试器的重要性。而不是试图猜测程序在做什么,您实际上可以按照每个步骤进行操作。不幸的是,在教授编程时有时会忽略这一点。
标签: c# loops while-loop do-while