2016-10-14 121 views
0

我試圖告訴用戶,只要他鍵入一個字符串而不是一個整數,他/她應該鍵入一個數字。但不知何故if語句內的代碼永遠不會顯示。如何檢查輸入是一個有效的整數

private static void Number() 
    { 
     Console.Write("Type it in a number: "); 
     int result = int.Parse(Console.ReadLine()); 
     if (float.IsNaN(result)) 
     { 
      Console.WriteLine("Please type a number!"); 
     } 
     else 
     { 
      Console.Write("Hi"); 
     } 
     Console.ReadLine(); 
    } 
+1

使用'int.TryParse()' –

回答

1
private static void Number() 
{ 
    Console.Write("Type it in a number: "); 
    int result; 
    bool parsedSuccessfully = int.TryParse(Console.ReadLine(), out result); 

    if (parsedSuccessfully == false) 
    { 
     Console.WriteLine("Please type a number!"); 
    } 
    else 
    { 
     Console.Write("Hi"); 
    } 
    Console.ReadLine(); 
} 
1

您可以通過int.TryParse

private static void Number() 
    { 
     Console.Write("Type it in a number: "); 
     int result; 
     if (int.TryParse(Console.ReadLine(), out result)) 
     { 
      // user input a valid integer 
      // result varaible have the input integer 
      Console.Write("Hi"); 
     } 
     else 
     { 
      // user input none integer 
      Console.WriteLine("Please type a number!"); 
     } 
     Console.ReadLine(); 
    } 
+0

謝謝你的工作Mostafiz!:) – Ryepower

+0

謝謝你的答案每個人!:) – Ryepower

+0

偉大的歡迎,快樂的編碼:) – Mostafiz

-2

做嘗試使用TryParse方法來驗證所輸入的字符串,你也可以使用

int.TryParse 

代碼:

private static void Number() 
    { 
     Console.Write("Type it in a number: "); 
     string userInput = Console.ReadLine(); 
     int result; 
     bool isValidNumber = Int32.TryParse(userInput,out result); 
     (!isValidNumber)? 
     Console.WriteLine("Please type a number!"): 
     Console.WriteLine("Hi"); 
     Console.ReadLine(); 
    } 
+0

謝謝Venkat :) – Ryepower

+1

這段代碼是不正確的,不解析。 – NJH

+0

@烈熱歡迎您! – Venkat