关于C的新秀问题。
我希望用户输入一个介于2到9之间的数字,如果没有,提示符会自动重复,直到输入参数中的整数为止。我可以用一个参数(
int between_2_and_8(string prompt)
{
int n;
do
{
n = get_int("%s", prompt);
}
while (n > 8);
return n;
}但运气不好,放了两个参数。下面是片段:
int between_2_and_8(string prompt)
{
int n;
do
{
n = get_int("%s", prompt);
}
while (n > 8);
return n;
while (n < 2);
return n;
}发布于 2019-01-17 04:26:32
您可以添加两个条件来继续您的do-while循环。
修改代码如下:
int between_2_and_8(string prompt)
{
int n;
do
{
n = get_int("%s", prompt);
}
while (n < 3 || n > 8); // continue looping till either n is less than 3 or greater than 8
return n;
}编辑:修正条件
发布于 2019-01-17 04:58:30
在执行前一项条件检查或执行while(n < 2)时,您永远不会输入条件检查return n。即。当条件为真时,它会在while (n > 8)周围循环,或者在条件失败时执行return n。因此,它将永远不会执行第二个条件检查while (n < 2)。
尝试在单个while循环中实现逻辑OR,如下所示
int between_2_and_8(string prompt)
{
int n;
do
{
n = get_int("%s", prompt);
}
while (n < 3 || n > 8);// Loops around until n is either less than 2 or greater than 8
return n;
}编辑:对状态检查所做的修正
https://stackoverflow.com/questions/54228619
复制相似问题