每当我运行循环时 "如果循环"运行正常但是,其中一个显示语法错误消息 是否切换案例支持,否则循环或不? 还有一个疑问是如何准备ocjp认证本身。
public static void main(String ah[])
{
int a,b,c,d=0,ch;
Scanner sc=new Scanner(System.in);
System.out.println("enter two number ");
a=sc.nextInt();
b=sc.nextInt();
System.out.println("enter your choise \n1.add\n2.sub\3.div\4.multi ");
ch=sc.nextInt();
switch(ch)
{
case 1:
c=a+b;
System.out.println("sum is = "+c);
break;
case 2:
c=a-b;
System.out.println("subtraction is = "+c);
break;
case 3:
System.out.println("press 1 & 2");
ch=sc.nextInt();
switch(ch)
{
case 1:
if(a>b)
d=b/a;
System.out.println("divi is = "+d);
//showing error = syntax error
else
System.out.println("");
break;
case 2:
d=a/b;
System.out.println("divistion is = "+d);
break;
}
break;
case 4:
c=a*b;
System.out.println("multiplication is = "+c);
break;
default :
System.out.println("wrong input ");
}
}
}
答案 0 :(得分:4)
if(a>b)
d=b/a;
System.out.println("divi is = "+d);
//showing error = syntax error
else
System.out.println("");
else
与if
无关,因为您没有括号。你有效写的是:
if(a>b) {
d=b/a;
}
System.out.println("divi is = "+d);
else
System.out.println("");
使用大括号:
if(a>b) {
d=b/a;
System.out.println("divi is = "+d);
} else {
System.out.println("");
}
请注意,有些(例如Google's style guide)会建议始终使用大括号,即使它们之间只有一个语句。
另请注意,这与switch
语句无关:如果没有切换,您将获得完全相同的问题。
答案 1 :(得分:3)
试试这个:
case 1:
if(a>b){
d=b/a;
System.out.println("divi is = "+d);
}else
System.out.println("");
break;
为了在if
块中包含多个语句,您需要使用括号来分隔它。
在Java中,总是使用括号来定义块也是一种很好的做法。
答案 2 :(得分:2)
问题是你在else之前调用if语句有多个语句,所以你应该将它们用大括号括起来:
case 1:
if(a>b)
{
d=b/a;
System.out.println("divi is = "+d);
}
else
System.out.println("");
break;