2016-03-17 78 views
0

嗨,我正在做非常基本的C#編碼,其中只是檢查奇數和偶數,但是如何我可以重新輸入輸入,而我將字符串轉換爲整數在一個地方。奇數偶數的C#程序

 if (i % 2==0) 

      { 
      Console.WriteLine("even"); 
      Console.WriteLine("enter again", i); 
     } 
     else if(i%2!=0) 

     { 
      Console.WriteLine("odd"); 
      Console.WriteLine("enter again", i); 
enter code here 
     } 

     Console.ReadKey(); 
+1

Console.Write(「輸入」 ); i = int.Parse(Console.ReadLine()); – Nishi

+1

如果你有更多的信息來提出你的問題,你應該把它放到問題中,而不是發表評論。 – juharr

+0

因爲你的「if」已經檢查了== 0,所以你不需要在else中再次出現這個條件,所以只有在它的時候纔會出現== =所以再次檢查是多餘的。除非有什麼我失蹤的東西。 –

回答

3

你想要做那樣的事情嗎?

static void Main(string[] args) 
    { 
     var l = string.Empty; 
     while (l != "exit") 
     { 
      l = Console.ReadLine(); 
      int i; 
      if (!int.TryParse(l, out i)) continue; 
      Console.WriteLine(i%2 == 0 ? "even" : "odd"); 
      Console.WriteLine("enter again"); 
     } 
     Console.ReadLine(); 
    } 
+2

很好但是......爲什麼'else if'? 'i%2'爲0或不爲0 :) – Pikoh

+0

也不需要在Console.WriteLine(「再次輸入」,i)中傳遞'i';因爲字符串中沒有格式項。 – juharr

+0

Thx,但我想保留最接近的代碼作爲OP帖子(我編輯了我的答案)。無論如何,juharr的回答是最好的 –

3

基本上你需要一個循環,你可以做,當用戶進入非整數值它停止。

int i; 
Console.WriteLine("enter a number"); 
while(int.TryParse(Console.ReadLine(), out i)) 
{ 
    Console.WriteLine(i%2 == 0 ? "even" : "odd"); 
    Console.WriteLine("enter again"); 
} 
0
static void Main() 
{ 
    string userChoice,number; 
    int checkInt; 
    Console.WriteLine("Do you want check even/odd number?y/n"); 
    userChoice = Console.ReadLine(); 
    if (userChoice.ToLower().Equals("y")) 
    { 
     do 
     { 

      Console.WriteLine("Please enter your number"); 
      number = Console.ReadLine(); 
      if (int.TryParse(number, out checkInt)) 
      { 
       if ((checkInt % 2) == 0) 
       { 
        Console.WriteLine("Your entered number {0} is even", checkInt); 
       } 
       else 
       { 
        Console.WriteLine("Your entered number {0} is odd", checkInt); 
       } 
      } 
      else 
      { 
       Console.WriteLine("Plesae enter integer value"); 
      } 

      Console.WriteLine("Do you want check even/odd number?y/n"); 
      userChoice = Console.ReadLine(); 
     } while (userChoice.ToLower().Equals("y")); 
    } 
} 
0

我想你需要一個循環,要求您插入一個新的號碼,直到它轉換成一個整數。

我建議你這個可能的解決方案

static int ReadInput(string message) 
    { 
     int n = 0; 
     do 
     { 
      Console.WriteLine(message); 
     } 
     while (!int.TryParse(Console.ReadLine(), out n)); 

     return n; 
    } 


    static void Main(string[] args) 
    { 
     int i = ReadInput("Enter a Number"); 
     if (i % 2==0) 
     { 
      Console.WriteLine("even"); 
     } 
     else if(i%2!=0) 
     { 
      Console.WriteLine("odd"); 
      //enter code here 
     } 
    } 
} 
0

爲了String轉換成int爲偶奇的程序,下面的代碼可以工作 -

static void Main(string[] args) 
{ 
     int i; 
     Console.Write("Enter a Number : "); 
     i = int.Parse(Console.ReadLine()); 

     if (i % 2 == 0) 
     { 
      Console.Write("Entered Number is an Even Number"); 
      Console.Read(); 
     } 
     else 
     { 
      Console.Write("Entered Number is an Odd Number"); 
      Console.Read(); 
     } 
}