代码之家  ›  专栏  ›  技术社区  ›  Bunyamin Erkaya

使用开关输入后立即断开,或者如果

  •  0
  • Bunyamin Erkaya  · 技术社区  · 1 年前

    我现在正在学习C,而且我一开始就在学习。

    这是我的代码:

    #include <stdio.h>
    
    int main (){
    
    char operator;
    double num1;
    double num2;
    double result;
    
    printf("\n Enter an operator");
    scanf("%c", &operator);
    
    printf("Enter number 1:");
    scanf("%lf", &num1);
    
    printf("Enter number 2:");
    scanf("%lf", &num2);
    
    
    switch(operator){
        break;
        case '+':
            result = num1 + num2;
            printf("\nresult: %.0lf", result);
            break;
          case '-':
            result = num1 - num2;
            printf("\nresult: %.0lf", result);
            break;
          case '*':
            result = num1 * num2;
            printf("\nresult: %.0lf", result);
            break;
          case '/':
            result = num1 / num2;
            printf("\nresult: %lf", result);
            break;
        default:
           printf("%c is not valid", operator);
    }
        return 0;
    }
    

    如果我输入了//*+或-以外的运算符,输入数字后会得到“x无效”,因此我需要您的帮助。如果我在一开始就输入了错误的运算符,我如何在那里结束代码,这样我就不必输入那个数字了?

    我想过用break函数。否则,我无法做到这一点。

    谢谢你的帮助!

    如果我输入了错误的运算符,我希望代码立即显示“错误的运算符”错误。

    1 回复  |  直到 1 年前
        1
  •  1
  •   PetrieHD    1 年前

    我想过用break函数。否则,我无法做到这一点。

    你可以使用if语句吗?或者只是不能使用if-else来检查输入运算符是否分别等于每个有效运算符?

    如果可以使用If语句,则可以使用strchr(),它检查字符串中是否找到字符(输入)(有效运算符):

    const char *valid_chars = "//*+-";
    printf("\n Enter an operator");
    scanf("%c", &operator);
    
    if (!strchr(valid_chars, operator) {
         printf("Wrong operator");
    }