2013-02-18 72 views
1

我在創建一個循環來檢查5個變量是否在變量10和50之間時出現了問題。我相信我已經設置了正確的編碼,但是出現錯誤,說我不能將int轉換爲bool。這是我目前有:將一個Int轉換爲Bool

 string userName = ""; 
     int v1, v2, v3, v4, v5 = 0; 
     float avg; 
     float variance; 

     Console.WriteLine("What is your name?"); 
     userName = Console.ReadLine(); 

     Console.WriteLine(); 

     int i = 1; 

     while (i <= 5) 
     { 
      int InputCheck = 0; 
      Console.WriteLine("Please input a number {0} between 10 and 50;", i); 
      InputCheck = Convert.ToInt32(Console.ReadLine()); 

      if (InputCheck >= 10 && InputCheck <= 50) 
      { 

       if (i >= 10 && i <= 50) 
        i++; 
       if (i != 1) 
       { 
        InputCheck = v1; 
       } 
       if (i != 2) 
       { 
        InputCheck = v2; 
       } 

       if (i == 3) 
       { 
        InputCheck = v3; 
       } 
       if (i == 4) 
       { 
        InputCheck = v4; 
       } 
       if (i == 5) 
       { 
        InputCheck = v5; 
       } 
       if (InputCheck < 10 || InputCheck > 50) 
       { 
        Console.WriteLine("The number you entered is either to high or to low please re-enter a number:"); 
       } 
      } 

任何幫助將不勝感激。

+0

WHA你的程序打算做什麼?你的while循環只循環5次,我的變量最大值是5,所以你的第一個if(if(i> = 10 && i <= 50))永遠不會被訪問,所以你的i變量值總是爲1。我錯過了一些... – fabricio 2013-02-18 18:54:49

+0

我的任務是讓用戶輸入10到50之間的5個數字。他希望我們創建循環來檢查並確保每個變量都在這些值之間。他還希望我們只有一個console.readline()l; – jimjam456 2013-02-18 19:03:18

回答

1

我不是100%肯定,但我認爲你錯誤來源於此行:

Console.WriteLine("Please input a number {0} between 10 and 50;", i); 

你給一個INT「我」,它需要一個布爾值。 也許這將幫助:http://msdn.microsoft.com/en-us/library/70x4wcx1.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2

至於你的代碼的其餘部分:

  • Calamar888是正確的,你正在使用的第一if語句「我」 將永遠不會計算爲真。
  • 此外,如果後面的if(if(i!= 1), 等)將多次計算爲true,覆蓋已保存的值 (當i = 2,3,4時i!= 1 ,或5)。
  • 這些if語句裏面你是改變'InputCheck'的值,不能保存
  • 您應該考慮使用數組來使你的程序更短
  • 你的其他「如果(InputCheck < 10 || InputCheck> 50)」不應該是第一,如果裏面,它永遠不會是真正的

假設你聲明:

int v[5]; /* creates array v[0], v[1], ... v[4] */ 
int i = 0; 

while (i<=4){ 
/* internal code */ 
} 

像這樣的東西應該工作:

/* internal code */ 

    if (InputCheck >= 10 && InputCheck <= 50) 
     { 
      v[i] = InputCheck; 
      i++; 

     } 
    else if (InputCheck < 10 || InputCheck > 50) 
     { 
      Console.WriteLine("The number you entered is either to high or to low please re-enter a number:"); 
     }