Jam*_*lat 3 c# windows oop cmd notepad++
社区.
我正在学习如何用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?");
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行程序时几乎一切都顺利.但是,当用户输入第一个操作数时,程序跳过第二个提示并打印与预期结果完全不同的结果.例如,如果我将0作为第一个数字,程序将跳转到操作并打印以下内容:
//
48 + 13
48*13
48-13
48/13
精打细算,对吧?
//
小智 5
不要使用,Console.Read因为它没有做到预期的:
从标准输入流中读取下一个字符(并返回表示它的整数值1).
这里有一个很好的解释,从devshort为什么第二次调用Console.Read"跳过":
如果您为第一件事输入值"1",它会将其转换为ascii表示.然后在屏幕[输入]缓冲区中回车仍为STILL,因此当您点击下一个读取(Console.Read)时,它会读取换行符并将其转换为数字.
相反,一种方法是使用Console.ReadLine(或返回一个字符串)代替int.Parse或类似的方式.
1提示:回车符的值为13.