Hej, jak już wspominałem w poprzednim swoim wątku, uczę się Javy z "Przewodnikiem dla początkujących" Schildta i dotarliśmy do instrukcji switch. Wszystko ładnie pięknie, mój kod (wariacja propozycji Schildta) uruchamia się bez problemu, ale...
package moje;
public class javahelp {
public static void main(String[] args)
throws java.io.IOException {
char wyb;
System.out.println("Wybierz temat, jaki chcesz poruszyć:"
+ "\n\t1. instrukcja if."
+ "\n\t2. instrukcja switch.");
System.out.println();
wyb=(char)System.in.read();
switch(wyb){
case '1': System.out.println("Instrukcja warunkowa \"if\":"
+ "\nif(warunek) instrukcja"
+ "\nelse instrukcja;");
break;
case '2': System.out.println("Instrukcja wyboru \"switch\":"
+ "\nswitch(wyrażenie) {"
+ "\n\tcase stała"
+ "\n\t\tsekwencja instrukcji"
+ "\n\t\tbreak"
+ "\n}");
break;
default: System.out.println("Złe polecenie!");
}
}}
...niestety wychodzi na to, że "odpowiednie" rezultaty wchodzą również przy wpisywaniu wieloznakowych case'ów, tj. np. "1234" skutkuje wyjaśnieniem instrukcji if, a "21" – instrukcji switch, zamiast "Złe polecenie", jak każe instrukcja default. Jak wg Was można by to zdebugować i czy dałoby się to zrobić bez nadmiernej ingerencji w algorytm (o metodzie nie wspominając)? Z góry dzięki.