Это код из Системы поддержки принятия решений, который я пытаюсь создать. В основном вопрос в том, хотите ли вы завтрак или нет. StdIn.readChar()
используется для чтения символа, который вы вставляете в консоль. Я на 100% уверен, что это правильно.
Очевидно, что отсутствует основной метод, я думаю, что без него понятно, но если вам это нужно, я могу вставить его позже.
Теперь мой вопрос:
Если я запускаю эту программу, меня в основном спрашивают, голоден я или нет. Поэтому я набираю j (на немецком языке «ja» означает «да»), и программа переходит к методу «Завтрак». Но затем меня спрашивают, хочу ли я завтракать, но нет времени вставлять чарса. Он напрямую переходит в метод Default. Я использовал команду печати, чтобы увидеть, в какой точке, как вы можете видеть. Я сделал что-то не так с выбором корпуса переключателя?
Моя консоль говорит так:
Are you hungry?
(I typed) j
Do you want breakfast?
2 (this is due to the testing println command)
This insert is invalid
Do you want breakfast?
И странный момент в том, что в этот момент я могу написать свой ответ.
У меня та же проблема с вопросом «Тебе нравится быть теплым?», Но, конечно, я никогда не смогу ответить, потому что мне нужно снова ответить на первый вопрос (Хочешь завтракать).
Вы можете мне помочь?
Нужно ли удалять цикл do-while?
Я делаю так неправильно, мне нужно все удалить? : D
public static void Breakfast(){
int a = 0;
do {
System.out.println("Do you want Breakfast?");
char y = StdIn.readChar(); //read Char from console
switch (y) {
case 'j':
System.out.println("Do you like it to be warm?");
y=StdIn.readChar();
switch (y) {
case 'j':
System.out.println("Eggs with Bacon");
break;
case 'n':
System.out.println("Cereal");
break;
default:
System.out.println("1");
a=Default();
}
break;
case 'n':
Mittagessen();
break;
default:
System.out.println("2");
a=Default();
}
} while (a!=0);
}
public static int Default (){
System.out.println("This insert is invalid");
return 1;
}