Inicjacja zmiennej w switch

0

witam, zalozmy ze mamy taki kod:

Scanner in = new Scanner(System.in);
      int num = in.nextInt();
      switch (num) {
         case 0:
            String msg = "aaa";
            break;
         case 1:
            String msg = "bbb"; //blad
            break;
      }

Wywala mi on blad w trakcie kompilacji o tresci: "wariable msg is already defined". Niby dlaczego? Przeciez jezeli uzytkownik wstuka 1 to kod w przypadku 0 zostanie ominiety i zmienna msg nie zostanie zdefiniowana wcale. Jak to dziala, kompilator przed wejsciem w switch deklaruje zmienne czy jak?

0

Ubierz każdy case w klamerki {}.

Scanner in = new Scanner(System.in);
      int num = in.nextInt();
      switch (num) {
         case 0: {
            String msg = "aaa";
            break;
         }
         case 1: {
            String msg = "bbb"; //blad
            break;
         }
      }
0

A co to za problem zadeklarować wcześniej msg?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.