在 C 中使用多个关系运算符的问题
Issue with using multiple relational operators in C
我是编程新手,但是我在提问之前搜索了这个主题,但仍然无法弄清楚我的程序做错了什么。
我有这个:
int i;
do
{
i = get_int("Enter positive integer between 1-10: \n");
}
while(1>i && i<10)
我想问用户一个1到10之间的正整数。它不接受小于 1 的值,这很好,但它会接受任何正值。我明白我不能做 1>i<10 因为它是从左到右读取的,但我无法让它认识到它必须遵循两个运算符。我的问题是什么?
只要用户输入 1 到 10 之间的数字,您可能希望循环到 运行 循环。您在 while 循环中的条件不正确。应该是这样的-
while(i>1 && i<10); # runs as long as i is in range 1 to 10
但是,如果您想在用户输入 1 to 10
范围内的任何数字后立即中断循环,那么您应该使用以下 -
while(!(i>1 && i<10)); # runs as long as i is outside the range 1 to 10
你的循环条件不正确。您应该使用 逻辑 OR 而不是 逻辑 AND.
这对我有用。
do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while (i<1 || i>10);
i can't get it to recognize it has to follow both operators.
Why would it be more applicable when the integer has to meet both criteria?
do {
....
} while(test);
当测试 returns true 时,随着循环再次迭代,将重新尝试输入。 重试的标准是什么,不是通过的标准是什么。
输入只需要通过两个测试之一即可重试:太低或太高。因此需要“或”(||
).
} while(i < 1 || i > 10);
你在 while expression
中弄错了 (syntax mistake
)(他们的 2 个错误,逻辑不正确,1<i
出现语法错误)- 参见内联修复:
int i = 0; /*its better if you initialize the i here*/
do
{
i= get_int ("Enter positive integer between 1-10: \n");
}
while((i > 1) && (i < 10));
I want to ask the user for a positive integer between one and ten.
我想你想要一个介于 1 和 10 之间的整数。
这样的条件什么时候会出现一个有效的正整数?
它将看起来像下面这样
1 <= i && i <= 10
所以当这个条件不成立时,do while 循环必须继续它的迭代。所以在循环的条件中你应该写一个上面条件的否定
int i;
do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while ( !( 1 <= i && i <= 10 ) );
如果删除括号,则条件将如下所示
int i;
do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while ( 1 > i || i > 10 ) );
我是编程新手,但是我在提问之前搜索了这个主题,但仍然无法弄清楚我的程序做错了什么。
我有这个:
int i;
do
{
i = get_int("Enter positive integer between 1-10: \n");
}
while(1>i && i<10)
我想问用户一个1到10之间的正整数。它不接受小于 1 的值,这很好,但它会接受任何正值。我明白我不能做 1>i<10 因为它是从左到右读取的,但我无法让它认识到它必须遵循两个运算符。我的问题是什么?
只要用户输入 1 到 10 之间的数字,您可能希望循环到 运行 循环。您在 while 循环中的条件不正确。应该是这样的-
while(i>1 && i<10); # runs as long as i is in range 1 to 10
但是,如果您想在用户输入 1 to 10
范围内的任何数字后立即中断循环,那么您应该使用以下 -
while(!(i>1 && i<10)); # runs as long as i is outside the range 1 to 10
你的循环条件不正确。您应该使用 逻辑 OR 而不是 逻辑 AND.
这对我有用。
do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while (i<1 || i>10);
i can't get it to recognize it has to follow both operators.
Why would it be more applicable when the integer has to meet both criteria?
do {
....
} while(test);
当测试 returns true 时,随着循环再次迭代,将重新尝试输入。 重试的标准是什么,不是通过的标准是什么。
输入只需要通过两个测试之一即可重试:太低或太高。因此需要“或”(||
).
} while(i < 1 || i > 10);
你在 while expression
中弄错了 (syntax mistake
)(他们的 2 个错误,逻辑不正确,1<i
出现语法错误)- 参见内联修复:
int i = 0; /*its better if you initialize the i here*/
do
{
i= get_int ("Enter positive integer between 1-10: \n");
}
while((i > 1) && (i < 10));
I want to ask the user for a positive integer between one and ten.
我想你想要一个介于 1 和 10 之间的整数。
这样的条件什么时候会出现一个有效的正整数?
它将看起来像下面这样
1 <= i && i <= 10
所以当这个条件不成立时,do while 循环必须继续它的迭代。所以在循环的条件中你应该写一个上面条件的否定
int i;
do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while ( !( 1 <= i && i <= 10 ) );
如果删除括号,则条件将如下所示
int i;
do
{
i= get_int ("Enter positive integer between 1-10: \n");
} while ( 1 > i || i > 10 ) );