gpt4 book ai didi

c - 需要循环 switch 语句直到输入 1 或 2

转载 作者:行者123 更新时间:2023-12-02 19:12:20 25 4
gpt4 key购买 nike

我需要循环 switch 语句,直到输入 1 或 2。任何帮助都会很好或示例代码。我尝试使用 while 循环,但它一直崩溃。我也尝试了 do while ,它变成了无限循环,所以我一定做错了什么。

int main (void)
{
int choice; // choice to run program from start menu or quit

while (1)
{
// Menu for entering resistor and capacitor values
printf("Welcome to the 555 Timer Frequency and Duty Cycle Calculator\n");
printf("Please enter two resistor values in between ");
printf("1 kOhms and 100 kOhms and a capacitor value\n\n");

//Start of menu
printf("Menu\n\n");
printf("1. Continue\n");
printf("2. Exit\n");

scanf("%d", &choice); // User inputs value


switch (choice)
{
case 1:
resistor(); // Program resistor is run if 1 is input
break;
case 2:
printf("Goodbye."); // Program ends if 2 is input
break; // break is used to exit while loop
default:
printf("Sorry I do not understand\n\n");
fflush(stdin); /* clears input buffer to allow user to input a new value if anything other
than 1 or 2 is input into scanf */
}

break;
}

return 0;
}

最佳答案

问题是你在“while”末尾有一个“break”,所以它只执行一次。

自从我用 C 编程以来已经很长时间了,但如果我没记错的话,你应该避免使用“fflush()”,因为它具有未定义的行为。相反,您可以将“scanf()”更改为:

scanf(" %d", &choice); // User inputs value

这样,您就可以获得与“fflush()”相同的预期效果,同时拥有更清晰的代码。

关于c - 需要循环 switch 语句直到输入 1 或 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64081403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com