输出结果没有错加了测试代码和注释,这样思路就清晰多了package testcode;public class Switchtest { int i = 0, w = 0;//实例变量,作用于整个类 public Switchtest() {//这个为构造函数,创建对象时就自动执行里面的代码for (; i <= 5; i++) {//初始条件永远为true switch (i)//把循环后的i作为switch参数,关键在与switch没有break语句,用continue跳转 { case 3://如果i为3 w 加1,如果匹配到一个以后由于没有break下面的就不再匹配按顺序执行了,以下同样的说明省略
w += 1;
System.out.println("i = "+i+" case 3=" + w); case 0://如果i为0 w 加1
w += 1;
System.out.println("i = "+i+" case 0=" + w); case 1://如果i为1 w 加1,并跳出到上级循环,即跳到for外面:
w += 1;
System.out.println("i = "+i+" case 1=" + w);
continue; case 2://如果i为2 w 加1
w += 1;
System.out.println("i = "+i+" case 2=" + w); case 4://如果i为4 w 加1
w += 1;
System.out.println("i = "+i+" case 4=" + w); default://其他情况 w 加2
w += 2; System.out.println("i = "+i+" case default=" + w); } System.out.println("i = "+i+" " + w);//输出w的值} } public static void main(String[] args) {Switchtest stest = new Switchtest();//创建一个Switchtest对象 }}---------------------输出结果为:i = 0 case 0=1i = 0 case 1=2i = 1 case 1=3i = 2 case 2=4i = 2 case 4=5i = 2 case default=7i = 2 7i = 3 case 3=8i = 3 case 0=9i = 3 case 1=10i = 4 case 4=11i = 4 case default=13i = 4 13i = 5 case default=15i = 5 15参考资料:自己本回答被提问者和网友采纳