首页 > 解决方案 > 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);
    }


}

标签: ccs50

解决方案


在第一个中,只需停止printf循环内部。

在第二个中,您在将值change存储在其中之前测试值,即未定义的行为。


推荐阅读