c - while 循环不会执行
问题描述
我需要一个while循环来只接受正数。我写了一个while循环,但它不会执行,我不确定出了什么问题。我的代码在 for while 循环中运行良好,但是当我输入负数并运行代码时,它会打印出输入,然后重新提示用户。我只是希望它重新提示,而不是打印输入。
如果有人可以提供帮助,谢谢。
这将打印输入,然后重新提示用户
#include <cs50.h>
#include <stdio.h>
int main(void)
{
float change;
do
{
change = get_float("Change: ");
printf("%f\n", change);
}
while (change < 1);
}
这根本不会执行
#include <cs50.h>
#include <stdio.h>
int main(void)
{
float change;
while (change < 1)
{
change = get_float("Change: ");
printf("%f\n", change);
}
}
解决方案
在第一个中,只需停止printf
循环内部。
在第二个中,您在将值change
存储在其中之前测试值,即未定义的行为。