【问题标题】:problem with if-statement and negative integerif 语句和负整数的问题
【发布时间】:2019-04-22 06:24:47
【问题描述】:

对 C# 真的很陌生。我想检查一个整数(来自用户的输入)是正数、负数还是零。它适用于正数和零,但当我输入负数时不起作用!

我尝试将输入类型从用户更改为 int、float、decimal、double 等,但没有任何效果。还尝试了 switch 语句。 我正在使用 Visual Studio 并调试到 Mac 终端,这可能是问题吗?我可以在写其他代码的时候使用负数,比如数学题等等。

Console.Write("Enter a number: ");   
int number = int.Parse(Console.ReadLine());   
if (number == 0)   
{
     Console.Write("zero");
}
else if (number < 0)
{
    Console.Write("negative");
}
else
{       
     Console.Write("positive");

(我也尝试过使用 switch 语句:)

Console.Write("Enter a number: ");
int number = int.Parse(Console.ReadLine());
switch(number)   
{   
     case 0: Console.Write("zero"); break;    
     case -1: Console.Write("negative"); break;    
     case 1: Console.Write("positive"); break;    
}

在这两种情况下,当输入正数或 0 时,我都会得到正确的输出,但当输入负数时,我会收到错误消息: “输入字符串的格式不正确”

【问题讨论】:

  • 欢迎来到 Stack Overflow。如果您的代码的第二行失败,那么之后的代码就无关紧要了 - 导致问题的不是 if 部分,而是对 int.Parse 的调用。您输入的是什么 exact 字符串?如果您使用的是破折号 (-) 或短破折号 (-) 而不是连字符 (-),这可能是问题的原因。如果您从此处复制并粘贴:-42 会发生什么?
  • 我刚刚将您的代码复制到 Visual Studio 并注意到代码是正确的,所以我认为应该是因为您的减号有问题。尝试为此使用标准输入。
  • 您的帮助!我已尝试使用您建议的减号,但它仍然无法正常工作。开始相信,就像你一样,我的代码没有问题,但格式为 av my 减号。有什么建议么?!再次感谢!
  • 从您对其中一个答案的评论中,我看到您使用的是,其字符代码为十进制8211,即EN-DASH character,而不是减号。所以这就是它不起作用的原因。当您在数字小键盘上使用减号时会发生什么?
  • 感谢您的帮助,现已解决。也许我在之前的答案中输入错误。我使用数字键盘减号 (-),它在 VS 中有效,但在终端中无效(作为输入)。在终端中,我现在使用减号作为终端中的输出,只需从任何输出减号的代码中返回一个负数。

标签: c# if-statement negative-integer


【解决方案1】:

它应该可以工作,因为这里的 int 是 Int32 范围是 -2,147,483,648 到 2,147,483,647。如果您在此范围内输入任何数字,它应该可以工作。对于超出此范围的数字,您将得到“值太小或太大”。 请分享您输入的号码

【讨论】:

  • 感谢您的帮助。我刚试过–42,我开始相信它与我键盘上的减号有关,有什么建议吗?
  • 确保输入中不要有任何空格,无论是在输入的开头还是结尾,也不要在“-”和数字之间。您帖子中的“-”看起来比正常宽,而您的 switch 语句中的“-”似乎没问题。也许你的电脑上有一些奇怪的文化设置。尝试向控制台写入一个负数:Console.WrteLine( -42 ) 并查看 te 减号是否以某种奇怪的方式显示。
  • 天哪,谢谢!!!我复制粘贴了您的代码: Console.WriteLine( -42 );并得到输出:-42 并复制了那个减号并将其用作我的代码的输入,它有效,非常感谢!关于如何更改我的键盘设置的任何想法?
猜你喜欢
  • 1970-01-01
  • 2015-07-30
  • 2015-12-18
  • 1970-01-01
  • 2012-11-19
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
相关资源
最近更新 更多