不退出“ while”循环

时间:2020-10-06 15:04:25

标签: c function while-loop

我开始自己学习c,今天我学习了如何使用和创建函数。 我做了一个计算器,以根据所学知识进行练习,所以我知道这可能不是构建该计算器的最有效方法。 问题在于,即使变量的值已更改,脚本也不会退出while循环。 如果你们能看看并向我解释问题,我将非常高兴。谢谢!

//The function for answer

char answer() {
    char anss=0;
    printf("Do you want to continue?\n");
    scanf(" %c",&anss);
    return anss;
}

//the while loop
char ans='y';
while (ans=='y') {
.
.
.
char ans=answer();
}

使用该函数后,我什至试图打印'ans'的值,但发现它已更改,但仍然没有退出while循环。

1 个答案:

答案 0 :(得分:3)

问题出在这条线上:

char ans=answer();

您正在ans循环内创建一个名为while的新变量。此变量会在较高范围内屏蔽具有相同名称的变量,因此无法通过该名称访问,并且不会更改。

您反而想要:

ans=answer();
相关问题