2014-02-10 258 views
2

嗨我的If語句不會工作出於某種原因我希望它說無效如果用戶低於0或超過100但我放入每個數字直接去我的else語句甚至沒有注意到我的if聲明。如果其他語句不工作

我在做什麼錯?

 g: 
     Console.WriteLine("Enter Grade: "); 
     int grade = Convert.ToInt32(Console.Read()); 
     if (grade < 0 || grade > 100) 
     { 
      Console.WriteLine("Input Valid"); 
      Console.ReadLine(); 
     } 
     else 
     { 
      Console.WriteLine("Input invalid"); 
      Console.ReadLine(); 
     } 
     goto g; 
+1

大多檔次不小於0或大於100 –

+0

@JohnnyMopp我看到固定它現在如果我走到0以下,它現在不會去else語句:/ – TheBoringGuy

+0

也許你的意思是,如果(等級> 0 &&等級<= 100)' – meda

回答

4

有些變化,你可能需要做:

int grade = Convert.ToInt32(Console.ReadLine()); 

,改變你的條件&&

if (grade >= 0 && grade <= 100) 
7

if/else這裏沒有問題。你從用戶獲得輸入的方式是。

使用Console.ReadLine()代替Console.Read()

int grade = Convert.ToInt32(Console.ReadLine()); 

Console.Read從控制檯中的第一個字符的回報數字表示(ACII碼),而不是數你輸入本身。

+0

另外,if/else看起來像@Johnny Mopp指出的那樣反轉。這是雙重打擊。 –

+0

@MarcinJuraszek我做到了這一點,我也注意到我與倒X的錯誤。但現在當我輸入-1它不會說無效。 – TheBoringGuy

4

更改你讀聲明如下:

int grade = Convert.ToInt32(Console.ReadLine()); 

Console.Read()返回您鍵入的ASCII碼,而Console.ReadLine()返回一個字符串。

+0

+1對於'Console.Read()返回你輸入的ASCII碼「 –