Когда я запускаю этот код, который представляет собой меню со многими различными опциями. он состоит из множества циклов. Некоторые из них мне еще предстоит сделать. Но моя проблема возникает, когда у меня есть пользователь, который выбирает «t» или имитатор монеты. Цикл начинается, но как только пользователь вводит количество флагов с монетами, скажем, 4, он говорит, что 2,0 головки и 2,0 хвоста означают 50,0% головок Введите кодовое письмо на ваш выбор: МОНИТОР МОНИТОРЫ ТОКСА Введите 0, чтобы выйти. Сколько бросков?Как выйти из внутренней петли и вернуться к основной петле в java?
Не следует указывать букву на ваш выбор: МОНИТОР МОНИТОРА, введите 0, чтобы выйти. сколько бросков?
Также, когда я вхожу 0, говорится, что вы ввели неверный вариант. 't' не является допустимым вариантом. Я хочу вернуть главное меню !!!! что происходит????
public class toolBox {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
boolean properInput = false;
int usersInput;
while (!properInput) {
System.out.println("Enter seed value:");
if (myScanner.hasNextInt()) {
usersInput = myScanner.nextInt();
properInput = true;
Random randomSeed = new Random(usersInput);
String randomNumberList = "";
for (int i = 0; i < 10; i++) {
randomNumberList += randomSeed.nextInt(80) + " ";
}
} else
{
String helloWorld = myScanner.next();
System.out.println("You have not entered an integer. '" + helloWorld + "' is not an integer");
}
}
outer:
System.out.println("===== CS302 TOOL BOX =====\nT > COIN TOSS SIMULATOR\nG > GRADE ESTIMATOR\nC > COLOR CHALLENGE\nQ > QUIT");
{
Scanner anotherScanner = new Scanner(System.in);
boolean usersSelection = false;
String c;
outer:
while (!usersSelection) {
{
System.out.print("" + "Type code letter for your choice: ");
}
if (anotherScanner.hasNext("q|Q")) {
c = anotherScanner.next();
usersSelection = true;
System.out.println("" + "" + "Good-Bye");
break;
}
if (anotherScanner.hasNext("t|T")) {
{
System.out.println("" + "COIN TOSS SIMULATOR" + "");
}
System.out.println("Enter 0 to quit. How many tosses?");
Random rand = new Random();
boolean headsOrTails;
float headsCount = 0;
float tailsCount = 0;
Scanner scanMan = new Scanner(System.in);
int numero = scanMan.nextInt();
if (numero == 0) {
break outer;
}
for (int j = 0; j < numero; j++) {
headsOrTails = rand.nextBoolean();
if (headsOrTails == true) {
headsCount++;
} else {
tailsCount++;
}
}
System.out.println(headsCount + " heads and " + tailsCount + " tails means "
+ (headsCount/(headsCount + tailsCount) * 100 + "% were heads"));
}
}
if (anotherScanner.hasNext("g|G")) // if the user were to enter either case of g, the
// program will register both and initialize the
// grade estimator.
{
c = anotherScanner.next();
usersSelection = true;
}
if (anotherScanner.hasNext("c|C"))
{
c = anotherScanner.next();
usersSelection = true;
System.out.println("Welcome to the Color Challenge!");
}
else {
String zoom = anotherScanner.next();
System.out.println("You have entered an invalid option. '" + zoom + "' is not a valid option.");
}
}
}
}
Не путайте. Eclipse, текстовый редактор, не влияет на это. –
Для начала я предлагаю разбивать ваш main() на несколько функций. что должно помочь вам организовать ваш код и посмотреть, что происходит. Во-вторых, я предлагаю избегать использования меток, так как вы почти наверняка будете иметь неожиданное поведение. – JBCP
Кроме того, я бы предположил, что, хотя я видел «перерыв»; используемый в коде, я написал очень много кода, и я никогда не требовал использования «перерыва». Философски «разрыв» нарушает логический поток цикла, и условию нарушения лучше управлять, устанавливая другие условия за какое-то время или повторяя ... до цикла. –