做一个模拟计算器的练习,中间加注释的这段代码运行不成功,结果如下,输出的数是一个随机数吧,而且没有执行switch,有点儿不明白问题出在哪儿了,
加注释下的那段儿代码就能成功运行,这是结果
有点儿不明白加注释的那段儿代码问题出在哪儿,希望有能大佬帮帮忙~~~
public class A {
public static void main(String[] args) {
java. util. Scanner s = new java . util. Scanner (System.in) ;
System. out.println("欢迎使用简单计算器系统: ") ;
System. out.print("请输入第一个数字: ") ;
int num1=s.nextInt() ;
System. out.print("请输入运算符: ") ;
String sta=s.next() ;
System. out.print("请输入第二个数字: ") ;
int num2=s.nextInt() ;
/*
switch (sta) {
case "+" :
System.out.println(num1+'+'+num2+'='+num1+num2) ;
break;
case "-" :
System.out.println(num1+'-'+num2+'='+num1-num2) ;
break;
case "*" :
System.out.println(num1+'*'+num2+'='+num1*num2) ;
break;
case "%" :
System.out.println(num1+'%'+num2+'='+num1%num2) ;
case "/" :
System.out.println(num1+'/'+num2+'='+num1/num2) ;
break;
default:
System. out.println ("对不起,您输入的内容非法") ;
}
*/
int result = 0;
switch (sta) {
case "+" :
result = num1+num2 ;
break;
case "-" :
result = num1-num2 ;
break;
case "*" :
result = num1*num2 ;
break;
case "%" :
result = num1%num2 ;
case "/" :
result = num1/num2 ;
break;
default:
System. out.println ("对不起,您输入的内容非法") ;
}
System. out.print("计算结果为: "+num1+sta+num2+"="+result) ;
}
}
用双引号不要用单引号,java每个case后面要加break退出,不然匹配到的之后不退出的话,后面的case也会执行。
public class A {
public static void main(String[] args) {
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("欢迎使用简单计算器系统: ");
System.out.print("请输入第一个数字: ");
int num1 = s.nextInt();
System.out.print("请输入运算符: ");
String sta = s.next();
System.out.print("请输入第二个数字: ");
int num2 = s.nextInt();
/**
* 1、字符串用双引号
* 2、运算加上括号,如(num1 + num2)
*/
switch (sta) {
case "+":
System.out.println(num1 + "+" + num2 + "=" + (num1 + num2));
break;
case "-":
System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
break;
case "*":
System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
break;
case "%":
System.out.println(num1 + "%" + num2 + "=" + (num1 % num2));
break;//这里加上break,不然连带下面的除法也执行了;当然如果你就是要一起执行的,那就不用加break
case "/":
System.out.println(num1 + "/" + num2 + "=" + (num1 / num2));
break;
default:
System.out.println("对不起,您输入的内容非法");
}
}
}
用单引号是char类型 char和int是同个类型的 所以会全被当做数字加起来, 具体是哪些数字去了解了解ascii码