繁体   English   中英

在 switch 语句中执行 while 循环

[英]Do while loop in a switch statement

仅使用 switch 语句就可以了。 我的问题是在插入 do-while 循环时出现的。 在第一次尝试时,程序运行顺利,但在第二次和随后的循环中,在通过键入 1 询问用户是否想再试一次之后,程序“跳转”用户写入其输入的部分(scanf("% d", &oper)) 并执行程序的 rest,将先前键入的 1 作为输入并搞砸一切。

我试过寻找类似问题和视频的答案,但我很新,我无法理解。 我有另一个有类似问题的程序。 我将非常感谢您的帮助:)

#include <stdio.h>

int main()
{
    int num1, num2, oper, select;
    printf("Enter the first number:");
    scanf("%d", &num1);
    printf("Enter the second number:");
    scanf("%d", &num2);
    printf("Enter the number 1-5 to for the operations\n");
    printf("1-Addition\n");
    printf("2-Subtraction\n");
    printf("3-Division\n");
    printf("4-Multiplication\n");
    printf("5-Modulo\n");
    
    scanf("%d", &oper);
    
    do{
        printf("Press 0 to stop and 1 to continue");
        scanf("%d", &select);
    
        switch(oper){
             case 1:
             printf("The sum is %d\n", num1+num2);
             break;
             case 2:
             printf("The difference is %d\n", num1-num2);
             break;
             case 3:
             printf("The quotient is %d\n", num1/num2);
             break;
             case 4:
             printf("The product is %d\n", num1*num2);
             break;
             case 5:
             printf("The remainder is %d\n", num1%num2);
             break;}
        
        
    }while(select == 1);
} ```

我想你想要类似下面的代码。

尝试这个:

#include <stdio.h>

int main()
{
    int num1, num2, oper, select;
    do{
        printf("Enter the first number:");
        scanf("%d", &num1);
        printf("Enter the second number:");
        scanf("%d", &num2);
        printf("Enter the number 1-5 to for the operations\n");
        printf("1-Addition\n");
        printf("2-Subtraction\n");
        printf("3-Division\n");
        printf("4-Multiplication\n");
        printf("5-Modulo\n");
        
        scanf("%d", &oper);
        switch(oper){
             case 1:
             printf("The sum is %d\n", num1+num2);
             break;
             case 2:
             printf("The difference is %d\n", num1-num2);
             break;
             case 3:
             printf("The quotient is %d\n", num1/num2);
             break;
             case 4:
             printf("The product is %d\n", num1*num2);
             break;
             case 5:
             printf("The remainder is %d\n", num1%num2);
             break;
         }
        
        printf("Press 0 to stop and 1 to continue: ");
        scanf("%d", &select);
    } while(select == 1);
    printf("Finish");
}

更改以下代码: while(select;= 0);

尝试这个:

#include <stdio.h>

int main()
{
    int num1, num2, oper, select;
    printf("Enter the first number:");
    scanf("%d", &num1);
    printf("Enter the second number:");
    scanf("%d", &num2);
    printf("Enter the number 1-5 to for the operations\n");
    printf("1-Addition\n");
    printf("2-Subtraction\n");
    printf("3-Division\n");
    printf("4-Multiplication\n");
    printf("5-Modulo\n");
    
    scanf("%d", &oper);
    
    do{
      printf("Press 0 to stop and 1 to continue");
      scanf("%d", &select);
  
      switch(oper){
        case 1:
        printf("The sum is %d\n", num1+num2);
        break;
        case 2:
        printf("The difference is %d\n", num1-num2);
        break;
        case 3:
        printf("The quotient is %d\n", num1/num2);
        break;
        case 4:
        printf("The product is %d\n", num1*num2);
        break;
        case 5:
        printf("The remainder is %d\n", num1%num2);
        break;
      }
           
    }while(select != 0);
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM