Разбить ярлык в выключателе
Отредактировано: Спасибо всем за вашу помощь. Я смог заставить его работать, используя навыки, которые я выучил в предыдущих главах, и ваш совет. Спасибо вам большое!
Я решил попробовать закрепить то, чему научился на Java: руководство для начинающих, создав простое текстовое приключение. Я собираюсь начать главу 4, которая включает в себя классы и методы. Первые три главы были посвящены переключению, простому взаимодействию с клавиатурой и прерыванию / продолжению.
Я планирую возвращаться после каждой главы и редактировать ее, чтобы использовать новые навыки, которые я изучил. Я едва поцарапал поверхность и столкнулся с проблемой.
// A basic, but hopefully, lengthy text adventure.
class TextAdventure
{
public static void main(String args[])
throws java.io.IOException
{
System.out.println("\t\t BASIC TEXT ADVENTURE");
// variables I need, attributes, classes, character name, player's choice, gold
int str = 0, inte = 0, chr = 0, con = 0, dex = 0, gold;
char charName, choice;
System.out.println("Welcome player! You are about to embark upon a quest in the form of a text adventure.");
System.out.println("You will make choices, fight monsters, and seek treasure. Come back victorious and you");
System.out.println("could quite possibly buy your way into nobility!");
System.out.println();
caseChoice: {
System.out.println("Please select your class:");
System.out.println("1. Warrior");
System.out.println("2. Mage");
System.out.println("3. Rogue");
System.out.println("4. Archer");
choice = (char) System.in.read(); // Get players choice of class
switch(choice)
{
case '1':
System.out.println("You have chosen the Warrior class!");
System.out.println("You're stats are as followed:");
System.out.println("Str: 16");
System.out.println("Int: 11");
System.out.println("Chr: 14");
System.out.println("Con: 15");
System.out.println("Dex: 9");
str = 16;
inte = 11;
chr = 14;
con = 15;
dex = 9;
break;
case '2':
System.out.println("You have chosen the Mage class!");
System.out.println("You're stats are as followed:");
System.out.println("Str: 16");
System.out.println("Int: 11");
System.out.println("Chr: 14");
System.out.println("Con: 15");
System.out.println("Dex: 9");
str = 9;
inte = 16;
chr = 14;
con = 15;
dex = 11;
break;
case '3':
System.out.println("You have chosen the Rogue class!");
System.out.println("You're stats are as followed:");
System.out.println("Str: 16");
System.out.println("Int: 11");
System.out.println("Chr: 14");
System.out.println("Con: 15");
System.out.println("Dex: 9");
str = 15;
inte = 11;
chr = 14;
con = 9;
dex = 16;
break;
case '4':
System.out.println("You have chosen the Archer class!");
System.out.println("You're stats are as followed:");
System.out.println("Str: 16");
System.out.println("Int: 11");
System.out.println("Chr: 14");
System.out.println("Con: 15");
System.out.println("Dex: 9");
str = 9;
inte = 11;
chr = 14;
con = 15;
dex = 16;
break;
default:
System.out.println("Not a valid choice, please enter a digit 1-4");
break caseChoice;
}
}
}
}
Цель оператора по умолчанию в коммутаторе - вернуть поток кода обратно к выбору класса. Я НЕ получаю ошибку компиляции или ошибку времени выполнения. Когда вы выбираете что-либо, кроме 1, 2, 3 или 4. Он говорит «Неправильный выбор, пожалуйста, введите цифру 1-4», как это и должно быть, но программа заканчивается.
Разве мне не разрешено использовать такую метку в выключателе? Или это не работает, потому что это технически вне блока кода?