sách gpt4 ăn đã đi

C 语言 - WHILE 循环的工作量超出了预期

In lại Tác giả: Walker 123 更新时间:2023-11-30 15:02:59 30 4
mua khóa gpt4 giày nike

我想让用户选择一个选项。所以我声明了一个名为 Choice 的变量,我希望它输入一个只能是 'M' của char'C''O' hoặc 'P'

Đây là mã của tôi:

char Choice;
printf("Select something to do :\n'M':Model Parametering\n'C':Calendar creation\n'O':Calendar Output\n'P':Calendar Print\nChoice==>>");
Choice = getchar();
while(Choice!='M' && Choice != 'C' && Choice != 'O' && Choice != 'P'){
printf("\nIncorrect choice, Try again\n");
printf("Select something to do :\n'P':Model Parametering\n'C':Calendar creation\n'O':Calendar Output\n'P':Calendar Print\nChoice==>>");
Choice = getchar();}

问题是当我用错误的值测试它时(输入不在 ['M','C','O','P'] 中的字符),while 循环不止一次地工作。例如,如果我输入 "TEST" thay vì 'M''C''O' hoặc'P'while 可以工作 5 次,而不是像我想要的那样只工作一次!为什么会发生这种情况?

câu trả lời hay nhất

输入TEST(4个字符)后,您还按了Enter。这是传递给程序的第五个字符(实际上是换行符)。同样,在执行单个字符(和 Enter)后,循环运行两次 - 首先针对字符本身,然后针对换行符。

关于C 语言 - WHILE 循环的工作量超出了预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40896766/

30 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress