所以,我是一个没有经验的新程序员,而且我正在学习一些名为SoloLearn的C#。它教我很好,但当我得到一个叫做用户输入的东西时,就出错了。问题是当我打开控制台应用程序时,没有任何显示。这是我的代码http://i.imgur.com/vyfF4N1.png。请记住,该程序的所有内容都正常工作,直到我添加了#age;#39;部分代码,然后当我在Visual Studio中打开它时,控制台上的所有内容都变为空白。请帮忙,谢谢!
答案 0 :(得分:2)
这里的大多数答案都是正确的,它将解决眼前的问题,但这里的基本问题是,OP并不清楚地理解基本编程。哪个很好,他们已经说过他们是初学者,所以让我以一个不同的角度对此进行分析。
首先我会在这里发布代码。 @IcyJake,将来你应该在这里发布代码,而不是链接到代码图像。
static void Main(string[] args)
{
string yourName;
int yourAge = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("What's your name?");
yourName = Console.ReadLine();
Console.WriteLine("Hello, {0}\n", yourName);
Console.WriteLine("How old are you?");
Console.WriteLine("Oh, {1} is a cool number");
Console.ReadLine();
}
该计划的目标显然是询问用户的姓名和年龄,并将该信息写回控制台。那么你应该怎么做才能实现这种行为?它将类似于以下内容。
- 要求用户输入年龄。
- 将用户输入年龄转换为变量,并保留以供将来使用。
- 要求用户输入姓名。
- 将用户输入名称输入变量,并保留以供将来使用。
- 使用两个保存的值输出消息。
醇>
首先,请尝试了解方法Console.ReadLine()
的用法。它的作用是,当用户在Console
中输入内容并按下ENTER
键时,它会抓取输入的内容并返回该值。所以如果你在你的程序中写这样的东西:
string input = Console.ReadLine();
这将采用用户键入的任何内容并将其保存到名为input
的字符串变量中。相反,Console.WriteLine()
会在控制台上显示一些内容。
现在,让我们来看一下你的计划,看看它与我上面提到的事物顺序的不同之处。
首先,您从控制台获取输入并将其转换为整数( ALL 控制台输入为string
格式,并将其用作您需要转换的数字它),并保存在yourAge
变量中。这就是为什么你的程序看起来变成空白的原因。控制台只是等待您键入内容并点击ENTER
。如果您只需输入号码并按Enter键,程序将进入下一阶段。然后,您要求输入名称,并将其保存到yourName
变量中。然后你问年龄,但没有得到用户的意见。然后打印最后的消息。
所以你的程序中的顺序(就我上面提到的必须完成的东西而言)是这样的:
2
3
4
1
5
正如您所看到的,显然存在问题。要修复它,您需要做的是按照我提到的顺序重新排列代码。那是;
Console.WriteLine()
并打印询问年龄的消息。Console.ReadLine()
获取该值并保存到yourAge
变量中。
Console.WriteLine()
并打印询问姓名的消息。Console.ReadLine()
获取该值并保存到yourName
变量。Console.WriteLine()
打印输入值。我故意不向你提供有效的代码,因为你是一个新学习的程序员,最好自己尝试一下,弄清楚你自己是做什么的。做。
其他信息:
Console.WriteLine()
中花括号的用法是将可变内容打印到控制台。假设您的程序中有一个名为myVar1
的整数变量,其值为5
。
所以,如果你要写
Console.WriteLine("Value = {0}", myVar1);
它将替换 {0}
并保持值myVar1
。因此,您的输出将如下所示:
值= 5
现在如果你的程序中有两个变量,比如myVar1
和myVar2
,你想要将两个写在同一行吗?比如说,您希望输出看起来像这样:(假设myVar1
的值为5,myVar2
的值为10.)
值= 5和10
我们现在做什么?
很容易,你用两个大括号写Console.WriteLine()
,如下所示:
Console.WriteLine("Values = {0} and {1}", myVar1, myVar2);
这样做,将{0}
替换为myVar1
的内容,并将{1}
替换为myVar2
的内容。也就是说,逗号代替{0}
后的第一个变量和逗号代替{1}
后的第二个变量。所以你的输出看起来像上面的预期输出。
您可以尝试并了解行为。例如,如果要交换这两个值,可以执行以下操作:
Console.WriteLine("Values = {0} and {1}", myVar2, myVar1);
现在,您的输出将如下所示:
值= 10和5
希望这可以帮助你开始。请找到更多教程并继续编程,将擅长它。而且,使用断点进行调试是了解遇到问题的好方法。
Finall,关于Stack Overflow。通常当您发布问题时,请直接复制粘贴代码,而不是上传图像。此外,这里的人通常不喜欢为你编写代码(有充分理由),但很乐意帮助你。所以试一试,只要问你是否能在SO中找到答案,或者通常在谷歌搜索后找到答案。 并阅读How to create a Minimal, Complete, and Verifiable example上的本指南,这将有助于您避免被投票。
祝你好运!答案 1 :(得分:0)
把
int yourAge = Convert.ToInt32(Console.ReadLine());
后
Console.WriteLine("How old are you?");
答案 2 :(得分:-1)
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx
int inputNumber;
bool isNumber = Int32.TryParse(value, out inputNumber);
if(isNumber){ Console.WriteLine $"Your age is {inputNumber}"}
else { Console.WriteLine $"Fail Cast!!!"}