int i;
int[] mArray = new int[5];
for (i = 0; i < mArray.Length; i++)
{
Console.WriteLine("Please enter a number:");
mArray[i] = Convert.ToInt32(Console.ReadLine());
if (mArray[i] >= 50 && mArray[i] <= 10)
{
Console.WriteLine("Please enter numbers only between 10 and 50.");
mArray[i] = Convert.ToInt32(Console.ReadLine());
}
}
如果声明中有两个规则if (mArray[i] >= 50 && mArray[i] <= 10)
但它适用于1条规则if (mArray[i] >= 50)
答案 0 :(得分:5)
您应该使用||
代替&&
mArray[i] >= 50 || mArray[i] <= 10
答案 1 :(得分:4)
看看你的情况:
if (mArray[i] >= 50 && mArray[i] <= 10)
您正在尝试查找同时至少50 且最多10 的数字。
您认为哪些号码被视为无效?
我怀疑你的意思是:
if (mArray[i] > 50 || mArray[i] < 10)
请注意,我已将>=
和<=
分别更改为>
和<
以匹配您的消息 - 我假设您希望10或50有效。< / p>
另请注意,您只测试一次有效性 - 如果用户继续输入第二个错误号码,您就会接受。我怀疑你想要的东西:
Console.WriteLine("Please enter a number:");
int value = Convert.ToInt32(ConsoleReadLine());
while (value > 50 || value < 10)
{
Console.WriteLine("Please enter numbers only between 10 and 50.");
value = Convert.ToInt32(Console.ReadLine());
}
// Now we know it's valid, so it's reasonably to put it in the array
mArray[i] = value;
答案 2 :(得分:4)
哪个数字大于50并且在同一时刻小于10?我认为你应该更换你的&amp;&amp; (AND)与|| (OR)
答案 3 :(得分:3)
没有数字可以大于50且小于10,您的条件是错误的:
if (mArray[i] >= 50 && mArray[i] <= 10)
应该是
if (mArray[i] >= 50 || mArray[i] <= 10)
答案 4 :(得分:3)
这取决于你打算如何使其发挥作用
/*Pass if the value is more or equal 50 OR lesst or equal 10*/
mArray[i] >= 50 || mArray[i] <= 10
或
/*Passs if the value is between 10 and 50, including edges*/
mArray[i] >= 10 && mArray[i] <= 50
答案 5 :(得分:2)
你的陈述是不可能的。 myArray[i]
必须大于50且小于10.您的意思是:
if (mArray[i] >= 50 || mArray[i] <= 10)
答案 6 :(得分:2)
尝试将您的逻辑更改为:
if (mArray[i] >= 50 || mArray[i] <= 10)