来自java小问题(请问能不能把它转换成switch语句)?

if (j==1||j==(i-1)*2+1) { System.out.print("*"); } else{ System.out.print(" "); }

白衣非少年
浏览 181回答 2
2回答

守着星空守着你

不能转的,因为Case后面得是常量,而(i-1)*2+1是变量,需要程序运行时才能确定,所以编译会报错:case expressions must be constant expressions

慕田峪9158850

public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int x; int j = 0 ,i = 0; x = getX(j , i); switch(x){ case 1: System.out.print("*"); break; case 2: System.out.print(" "); break; } } private static int getX(int j,int i) { // TODO Auto-generated method stub int x = 0 ; if(j==1||j==(i-1)*2+1){ x=1; }else{ x=2; } return x; } }
打开App,查看更多内容
随时随地看视频慕课网APP