public String next() {
switch(key) {
default:
case 0 : key++; return "Snow White";
case 1 : key++; return "Bashful";
case 2 : key++; return "Doc";
case 3 : key++; return "Dopey";
case 4 : key++; return "Grumpy";
case 5 : key++; return "Happy";
case 6 : key++; return "Sleepy";
case 7 : key = 0; return "Sneezy";
}
}为什么这个样子能正确执行,把default放到下面就不能正确执行下面这个样子也能正确执行:
public String next() {
switch(key) {
// default:
case 0 : key++; return "Snow White";
case 1 : key++; return "Bashful";
case 2 : key++; return "Doc";
case 3 : key++; return "Dopey";
case 4 : key++; return "Grumpy";
case 5 : key++; return "Happy";
case 6 : key++; return "Sleepy";
case 7 : key = 0; return "Sneezy";
}
return null;
}
switch(key) {
default:
case 0 : key++; return "Snow White";
case 1 : key++; return "Bashful";
case 2 : key++; return "Doc";
case 3 : key++; return "Dopey";
case 4 : key++; return "Grumpy";
case 5 : key++; return "Happy";
case 6 : key++; return "Sleepy";
case 7 : key = 0; return "Sneezy";
}
}为什么这个样子能正确执行,把default放到下面就不能正确执行下面这个样子也能正确执行:
public String next() {
switch(key) {
// default:
case 0 : key++; return "Snow White";
case 1 : key++; return "Bashful";
case 2 : key++; return "Doc";
case 3 : key++; return "Dopey";
case 4 : key++; return "Grumpy";
case 5 : key++; return "Happy";
case 6 : key++; return "Sleepy";
case 7 : key = 0; return "Sneezy";
}
return null;
}
如果你方法里面只有一个switch。那么switch中。必须将所有的情况都考虑到。并且返回值。即使default也一样。你可以去试试。这样。
public String getString(int i){ if(i == 1)
return "aaa";}
这样就是错的。
但是如果这样
public String getString(int i){ if(i == 1)
return "aaa";
else
return "bbb";
}
就是对的。
后没有break
顺序执行下面有返回值的语句。