Удобство использования фигурных скобок
Скажем, у меня есть следующий код, который использует только 2 фигурные скобки:
public void listFish(){
System.out.println(name + " with " + numFishCaught + " fish as follows: ");
for (Fish f: fishCaught)
if (f != null)
System.out.println(f.toString());}
Повредит ли это моему коду или изменит способ его работы, если я переписываю его таким образом? Каков обычно правильный способ использования фигурных скобок? Спасибо
public void listFish(){
System.out.println(name + " with " + numFishCaught + " fish as follows: ");
for (Fish f: fishCaught){
if (f != null){
System.out.println(f.toString());
}
} }
3 ответа
Для одного оператора он останется тем же, но если вы хотите сгруппировать более одного оператора в блоке if, вам придется использовать корректные скобки.
if("pie"== "pie"){
System.out.println("Hurrah!");
System.out.println("Hurrah!2");
}
if("pie"== "pie")
System.out.println("Hurrah!"); //without braces only this statement will fall under if
System.out.println("Hurrah!2"); //not this one
Вы должны увидеть: блоки
Блок - это группа из нуля или более операторов между сбалансированными скобками, и его можно использовать везде, где разрешен один оператор. Следующий пример, BlockDemo, иллюстрирует использование блоков:
class BlockDemo {
public static void main(String[] args) {
boolean condition = true;
if (condition) { // begin block 1
System.out.println("Condition is true.");
} // end block one
else { // begin block 2
System.out.println("Condition is false.");
} // end block 2
}
}
Нет, это не повредит вашему коду. На самом деле, хорошей практикой является всегда использовать фигурные скобки. Чтобы объяснить - найдите разницу между этими четырьмя:
if (2 == 2)
System.out.println("First line");
System.out.println("Second line");
if (2 == 2)
System.out.println("First line");
System.out.println("Second line");
if (2 == 2) {
System.out.println("First line");
System.out.println("Second line");
}
if (2 == 2){
System.out.println("First line");
}
System.out.println("Second line");
При использовании фигурных скобок все понятно с первого взгляда.
Как правило, когда вы создаете цикл любого типа и в нем есть только одна строка кода (то есть только одна инструкция, заканчивающаяся точкой с запятой), вам не нужны {фигурные скобки}. Однако, если у вас есть более одной строки, которая будет выполнена, если цикл будет введен, тогда используйте {фигурные скобки} следующим образом:
public void listFish () {
System.out.println( name + " with " + numFishCaught + " fish as follows: " );
for ( Fish f: fishCaught ) {
if ( f != null ) {
System.out.println( f.toString() );
}
}
}
Код все о том, может ли он работать... Я могу переписать код следующим образом, он все равно будет работать отлично:
public void listFish () { System.out.println( name + " with " + numFishCaught + " fish as follows: " ); for ( Fish f: fishCaught ) { if ( f != null ) { System.out.println( f.toString() ); } } }
Весь смысл в том, чтобы выстроить фигурные скобки и прочее, заключается в удобочитаемости... Если вы можете прочитать это, вы, как правило, в порядке!