if(op == '+'){
printf("%d", value1 + value2);
}
if(op == '-'){
printf("%d", value1 - value2);
}else{
printf("Error");
}
输入8-5,则输出
3
输入3+4,则输出
7Error 是否正确?
代码是错误的,第4行改为else if
否则逻辑就是else只针对输入非减号的情况,如果输入的是加号,else也会执行,导致输出Error
输入8-5时,该代码段的输出是正确的,输出为3。
但是,当输入3+4时,该代码段的输出是错误的。由于该代码段的else语句只与if(op == '-')语句相关联,因此当op不为减号时,它会输出“Error”。因此,对于加号,没有输出任何计算结果。
以下是修改后的代码,以使其能够正确地处理加、减和乘法:
c
if(op == '+') { printf("%d", value1 + value2); } else if(op == '-') { printf("%d", value1 - value2); } else if(op == '*') { printf("%d", value1 * value2); } else { printf("Error"); }
在这个版本的代码中,else语句被替换成了else if(op == '*')语句,以允许处理乘法操作符。如果op是加、减或乘法操作符之一,相应的计算结果将被输出。否则,将输出“Error”提示。
根据你的代码,输入3+4时,输出7Error,因为前后两个if间并没有else关联,所以两个判断都会执行,所以会依次输出7和Error