社区。

我正在学习如何用C#编程。我写了这个小程序,从用户那里获取名称,年龄,喜欢的颜色和两个数字。我使用 Notepad++ 编写代码,并从Windows命令提示符下运行C#编译器。这是程序的源代码

using System;

class ShowSomething
{
static void Main(string[] args)

{
    string name, age, favColor;
    int num1,num2, sum, mult, subs;
    float div;


    Console.Write("What is your name? ");
    name = Console.ReadLine();
    Console.WriteLine("Hello, " + name);

    Console.WriteLine();

    Console.Write("How old are you? ");
    age = Console.ReadLine();
    Console.WriteLine("So you are " + age, "I thought that you were older!");

    Console.WriteLine();

    Console.Write("What is your favorite Color? ");
    favColor = Console.ReadLine();
    Console.WriteLine(favColor + " is a cool color!");

    Console.WriteLine();

    Console.WriteLine("Nice meeting you, " + name, "Have a good day!");

    Console.WriteLine();

    Console.WriteLine("Let us do some operations, " + name);

    Console.WriteLine();

    Console.Write("Please enter a number: ");
    num1 = Console.Read();

    Console.Write("Please enter another number: ");
    num2 = Console.Read();

    sum = num1 + num2;
    mult = num1 * num2;
    subs = num1 - num2;
    div = num1 / num2;


    Console.WriteLine();

    Console.WriteLine("Alright, " + name, "Let us blow up your mind!");

    Console.WriteLine();

    Console.WriteLine(num1 + "+" + num2, "=" + sum);
    Console.WriteLine(num1 + "*" + num2, "=" + mult);
    Console.WriteLine(num1 + "-" + num2, "=" + subs);
    Console.WriteLine(num1 + "/" + num2, "=" + div);

    Console.WriteLine();
    Console.WriteLine("Mindblown, Right?");
}

}

当我执行程序时,几乎一切顺利。但是,当用户输入第一个操作数时,程序将跳过第二个提示,并输出与预期完全不同的结果。例如,如果我将0作为第一个数字,程序将跳转到操作并打印以下内容:

//

48 + 13

48 * 13

48-13

48/13

Mindblown,对吧?

//

最佳答案

不要使用 Console.Read ,因为它不执行预期的操作:



这是devshort很好的解释,为什么第二次调用Console.Read会“跳过”:



相反,一种方法是将 Console.ReadLine (返回字符串)与 int.Parse 或类似的。结合使用。

1提示:carriage return字符的值为13。

09-10 07:28
查看更多