Удобство использования фигурных скобок

Скажем, у меня есть следующий код, который использует только 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() ); } } }

Весь смысл в том, чтобы выстроить фигурные скобки и прочее, заключается в удобочитаемости... Если вы можете прочитать это, вы, как правило, в порядке!

Другие вопросы по тегам