这与CS50 x(第2周)课程中的该代码相关。
密码是:
int get_negative_int(void)
{
int n;
do
{
n = get_int("Negative integer: ");
printf("n is %i\n", n);
}
while (n < 0);
return n;
}
我很困惑为什么“返回n;当n〈0时,do while循环是否会继续运行?一旦n〉0,它是否应该停止并将n的〉0值传递给int n,而不使用“return n;“行吗?
我没有任何错误,但我有麻烦理解如何返回工作在这个示例中。我觉得我错过了一些基本的返回工作在这里,任何指针将不胜感激!
2条答案
按热度按时间js81xvg61#
从函数返回值的唯一方法是通过
return
语句。do/while条件只控制循环,然后继续执行下一行。
sqougxex2#
return
与循环无关。任何返回值的函数,如int get_negative_int(void)
返回int
,都需要有一个return
语句,就这么简单。CS50的任务是找出函数的错误。提示:不是
return
。一旦n〉0它不应该停止吗
请注意,
n < 0
的反义词是n >= 0
。当输入大于或等于0的数字时,循环确实会停止。