Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何构建一个循环,允许用户输入正数和整数,并在输入0或负数时结束_C# - Fatal编程技术网

C# 如何构建一个循环,允许用户输入正数和整数,并在输入0或负数时结束

C# 如何构建一个循环,允许用户输入正数和整数,并在输入0或负数时结束,c#,C#,大家好 因此,我在while/for/do while循环中遇到了一些困难,因为我很难理解它们的结构 这导致我的家庭作业有一些问题,我需要做的是为以下内容编写代码: 我需要一个程序,允许用户只输入正数和整数,该程序还计算它们的总和,并在控制台中显示每个输入的结果(例如,用户输入1和大于2,大于3和大于4,该程序将结果显示为10) 如果用户输入0或负数,程序将结束 我只能用for/while/do-while 我的经验是只使用基本的东西,比如int、double、loop、string等等 我真的

大家好

因此,我在while/for/do while循环中遇到了一些困难,因为我很难理解它们的结构

这导致我的家庭作业有一些问题,我需要做的是为以下内容编写代码:

我需要一个程序,允许用户只输入正数和整数,该程序还计算它们的总和,并在控制台中显示每个输入的结果(例如,用户输入1和大于2,大于3和大于4,该程序将结果显示为10)

如果用户输入0或负数,程序将结束

我只能用for/while/do-while

我的经验是只使用基本的东西,比如int、double、loop、string等等

我真的不太明白,我很想得到一些想法和帮助

我试过了,但一开始就被卡住了。我不知道如何开始

编辑: 我真的只是尝试了一下这个想法,因为我不知道如何开始,我做了这个,这是不好的

        int number, i=1 , min;

        Console.WriteLine("Please enter only positive WHOLE numbers to calculate");
        number = int.Parse(Console.ReadLine());

        while (i <= number)
        {
            Console.WriteLine("This is the smallest number: " + number);
            i++;
        }
整数,i=1,最小值;
Console.WriteLine(“请只输入要计算的正整数”);
number=int.Parse(Console.ReadLine());

(i我认为最好的办法是阅读文档:

1操作方法:

  int number, i=0 , min=1; // min is the minimum value, i is the sum, number is the input you give



    while (i <= min)// checks if its lesser than zero
    {
    Console.WriteLine("Please enter only positive WHOLE numbers to calculate");
    number = int.Parse(Console.ReadLine());
        i += number;
        Console.WriteLine("This is the sum: " + i);
    }
    int number, i=0 , min=1; // min is the minimum value, i is the sum, number is the input you give

    while (true)
    {
    Console.WriteLine("Please enter only positive WHOLE numbers to calculate");
    number = int.Parse(Console.ReadLine());
        if(i<=min)
           break;
        i += number;
        Console.WriteLine("This is the sum: " + i);
    }
int number,i=0,min=1;//min是最小值,i是总和,number是您给出的输入

while(i循环用于重复的代码。在您的任务中,输入和添加重复,因此将它们放入循环中。
while
for
循环在执行循环体之前检查条件,然后执行
do
检查

您的算法如下所示:

  • 读取输入
  • 检查是否为阳性,如果不是,退出
  • 把它加到总和上
  • 重复一遍
  • 因此,您应该在循环中间检查条件。您可以使用
    break
    提前退出循环。因为您既不在开始也不在结束时检查条件,所以只需编写一个无限循环

    int n, sum = 0;
    while (true) {
        n = int.Parse (Console.ReadLine ());
        if (n <= 0) break;
        sum += n;
    }
    
    您将重复语句放在循环之外。这迫使您使用标签。标签很容易使您的逻辑变得非常难以阅读

    您不确定地退出循环,因此这里的
    while
    if
    之间没有区别

    记住在某些事情重复时使用循环,在没有任何事情重复时不要使用循环

    Console.WriteLine ("Please enter only positive WHOLE numbers to calculate");
    int n, sum = 0;
    while (true) {
        n = int.Parse (Console.ReadLine ());
        Console.WriteLine ("This is your number : " + number);
        if (n <= 0) {
            Console.WriteLine("Please enter a number bigger than 0");
            // actually he won't get a chance to enter it. Why to ask him then?
            break;
        }
        sum += n;
        Console.WriteLine("The sum is: " + sum);
    }
    
    Console.WriteLine(“请只输入要计算的正整数”);
    int n,和=0;
    while(true){
    n=int.Parse(Console.ReadLine());
    Console.WriteLine(“这是您的号码:”+number);
    
    如果(n你能编辑这个问题来告诉我们你到目前为止用代码做了什么吗?是的,我刚刚修复了它。我知道如何在基本层面上使用while和do循环,可能比文档中的解释更好,但我不知道如何使用它们将代码思想实现为现实。while不需要增量,如果你没有它的一个用途。在您的情况下,它所需要的只是一个条件,即检查输入是否小于零,而不是忽略循环。在当前的迭代中,它只是以相同的次数x(用户输入的次数)循环,程序结束,并且它总是显示相同的数字(如果用户输入了4,它会说“这是总和:4”,直到程序结束)修复了它。这是因为控制台打印和输入检索代码超出了while块。这无法完全修复代码。第一个输入仍然没有验证。您可以通过查看如何在第一次迭代时验证检查来进一步修复它。请尝试一段时间。如果您仍然需要帮助,请告诉我。我做到了,我想知道是否有一个更好的方法(编辑我的帖子)我写的东西稍微长一点,但我想它是有效的,我不知道我是否可以把它缩短一点?我在我的第一篇帖子中编辑了它,请看那里。
    int number, sum = 0;
    
        Console.WriteLine("Please enter only positive WHOLE numbers to calculate");
    start:
        number = int.Parse(Console.ReadLine());
    
        while (number > 0)
        {
            Console.WriteLine("This is your number : " + number);
            sum += number;
            Console.WriteLine("The sum is: " + sum);
            goto start;
    
        }
    
        while (number <= 0)
        {
            Console.WriteLine("Please enter a number bigger than 0");
            break;
    
        }
    
    Console.WriteLine ("Please enter only positive WHOLE numbers to calculate");
    int n, sum = 0;
    while (true) {
        n = int.Parse (Console.ReadLine ());
        Console.WriteLine ("This is your number : " + number);
        if (n <= 0) {
            Console.WriteLine("Please enter a number bigger than 0");
            // actually he won't get a chance to enter it. Why to ask him then?
            break;
        }
        sum += n;
        Console.WriteLine("The sum is: " + sum);
    }