导致infite循环的switch语句中的goto语句

时间:2018-02-09 06:08:01

标签: c switch-statement infinite-loop goto

我在switch语句中使用goto语句,如果其无效,则再次从用户那里获取输入。这是代码

#include<stdio.h>

int main(void)
{
 int choice;

 input:
 printf("Enter Your Choice: ");
 scanf("%d", &choice);

 switch(choice)
 {
    case 1:
        /* do something */
        break;
    case 2:
        /* do something */
        break;
    case 3:
        /* do something */
        break;
    default:
        printf("Invalid Input");
        goto input;
}
}
当输入为数字时,

代码工作得很好。但是当我输入字母表或某些字符代码无限运行时就好像scanf不存在一样。我无法理解这种行为。为什么会这样发生呢?

0 个答案:

没有答案