2013-02-18 70 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:"); 
     }