Оператор break
никогда не достигается, поскольку все пути выполнения case 0
всегда заканчиваются оператором возврата.
Поэтому он не нужен.
Если вместо возврата оператор, вы присвоили значение переменной, вам понадобится оператор break
:
boolean result = false;
if(year<1 || year>9999)
result = false;
else {
switch(year%4){
case 0:
if((year%100)==0){
if((year%400)==0){
result = true;
}
else
result = false;
}
else
result = true;
break;
default:
result = false;
}
}
return result;
Конечно, вы сможете упростить код в этом случае, поэтому вам не понадобится В конце концов, оператор break:
boolean result = false;
if(year>=1 && year<=9999) {
switch(year%4){
case 0:
if((year%100)==0){
if((year%400)==0){
result = true;
}
} else {
result = true;
}
}
}
return result;
Тем не менее, это не похоже на хороший сценарий использования оператора switch
, поскольку у вас есть только два случая (или даже один).
Например, вы можете написать:
boolean result = false;
if(year>=1 && year<=9999 && year%4 == 0) {
if((year%100)==0){
if((year%400)==0){
result = true;
}
} else {
result = true;
}
}
return result;
или даже проще (хотя это еще можно упростить):
boolean result = false;
if(year>=1 && year<=9999 && year%4 == 0) {
if((year%100) != 0 || (year%400)==0) {
result = true;
}
}
return result;