C# 我的输入值不是我插入的数字
我试着做一个乘数。当我插入数字5时,它神奇地变为53。2号的时候是50号。看不出我犯了什么错误C# 我的输入值不是我插入的数字,c#,C#,我试着做一个乘数。当我插入数字5时,它神奇地变为53。2号的时候是50号。看不出我犯了什么错误 public static void Main(string[] args) { Console.WriteLine("Enter the number: "); int num = Console.Read(); Console.WriteLine(); int i; for (i = 0; i <= 10; i++) { in
public static void Main(string[] args)
{
Console.WriteLine("Enter the number: ");
int num = Console.Read();
Console.WriteLine();
int i;
for (i = 0; i <= 10; i++)
{
int result = num * i;
Console.WriteLine("{0}*{1}={2}", num, i, result);
}
}
publicstaticvoidmain(字符串[]args)
{
Console.WriteLine(“输入号码:”);
int num=Console.Read();
Console.WriteLine();
int i;
对于(i=0;i请参阅控制台的。读取。它从输入流返回下一个字符。通过将其分配给int
,可以将char
转换为int
,从而生成该字符的代码
请使用与int.Parse
结合使用的Console.ReadLine
方法:
int num = int.Parse(Console.ReadLine());
这将以字符串的形式返回整个输入,int.Parse
将尝试从中创建int
。使用Console.ReadLine()方法
publicstaticvoidmain(字符串[]args)
{
Console.WriteLine(“输入号码:”);
字符串输入=Console.ReadLine();
int-num;
//Console.WriteLine();
if(Int32.TryParse(输入,输出数值))
{
int i;
对于(i=0;我将int num=Console.Read();
更改为int num=Convert.ToInt32(Console.ReadLine());
它的ASCII等价值5整数转换与控制台。ReadLine
在这里工作正常:。我开始转换,但它不起作用。因此我尝试不使用它。当某些东西不能按预期工作时,您应该先阅读函数/lib的文档。如果您这样做,您会立即明白我在那里这里没有“魔力”。因此它不能替代使用web搜索引擎搜索琐碎信息。实际上,应该使用TryParse
asParse
在用户输入非数字字符串时会抛出异常。类似于if(int.TryParse(Console.ReadLine(),out int num))
,然后在else
块中添加一些处理代码。@T.Linnell当然,我希望我的回答尽可能简洁,因为根据问题的性质,OP必须是初学者,因此我不想添加任何其他不必要的噪音。我假设有效输入In这个答案。@T.Linnell,您忘记添加日志记录和设置项目;)@Balázs:当然,这就是我投票的原因,我只是想提一下它的完整性,作为OP采取的下一步。@Sinatr:是吗?OP代码的范围是它为给定的用户输入吐出一个时间表-他们发布的代码似乎是整个代码库。我认为在一个如此小的项目中,日志记录是不必要的。Console.ReadLine()将来自控制台的所有输入作为字符串,所以您需要转换为整数。Int32.TryParse()将字符串转换为等效的32位带符号整数,并将其分配给out参数。否则,您知道输入不是整数。谢谢
int num =Convert.ToInt32(Console.ReadLine());
public static void Main(string[] args)
{
Console.WriteLine("Enter the number: ");
string input = Console.ReadLine();
int num;
// Console.WriteLine();
if (Int32.TryParse(input, out num))
{
int i;
for (i = 0; i <= 10; i++)
{
int result = num * i;
Console.WriteLine("{0}*{1}={2}", num, i, result);
}
}
else
{
//not an integer
Console.WriteLine("not an integer");
}
Console.ReadLine();
}