使用 switch 或 if 输入后立即中断

问题描述 投票:0回答: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函数。或 if-else 但是,我无法做到这一点。

感谢您的帮助!

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

c if-statement switch-statement break
1个回答
0
投票

我想到使用break函数。或 if-else 但是,我无法做到这一点。

您可以使用任何 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");
}
© www.soinside.com 2019 - 2024. All rights reserved.