Оператор while не работает в этом коде?
То, что следует за s, - это мой код. Я не понимаю, почему программа заканчивается, не спрашивая ввода пользователя, который определяет, продолжает ли программа работать или нет.
Он должен ждать ввода, не так ли? Почему он завершается, не дожидаясь ввода?
package com.company; import java.util.Scanner; public class PP1CourseWork2 { static int dieRoll() { int roll1 = (int) ((Math.random() * 1000 % 6 + 1)); int roll2 = (int) ((Math.random() * 1000 % 6 + 1)); int roll3 = (int) ((Math.random() * 1000 % 6 + 1)); int tot = roll1 + roll2 + roll3; return tot; } public static void main(String[] args){ System.out.println("Enter Level: "); Scanner sc = new Scanner(System.in); int Level = sc.nextInt(); String choice = null; int Str = dieRoll(); int Dex = dieRoll(); int Con = dieRoll(); int Int = dieRoll(); int Wis = dieRoll(); int Cha = dieRoll(); do{ if (Str == 10) { System.out.println("Str: " + "[" + Str + "]" + "[0]"); } else if (Str > 10) { int bonus = 0; for (int i = 11; i < Str + 1; i++) { if (i % 2 == 0) { bonus = bonus + 1; } } System.out.println("Str: " + "[" + Str + "]" + "[+" + bonus + "]"); } else { int bonus = 0; for (int i = Str; i < 10; i++) { if (!(i % 2 == 0)) { bonus = bonus + 1; } } System.out.println("Str: " + "[" + Str + "]" + "[-" + bonus + "]"); } if (Dex == 10) { System.out.println("Dex: " + "[" + Dex + "]" + "[0]"); } else if (Dex > 10) { int bonus = 0; for (int i = 11; i < Dex + 1; i++) { if (i % 2 == 0) { bonus = bonus + 1; } } System.out.println("Dex: " + "[" + Dex + "]" + "[+" + bonus + "]"); } else { int bonus = 0; for (int i = Dex; i < 10; i++) { if (!(i % 2 == 0)) { bonus = bonus + 1; } } System.out.println("Dex: " + "[" + Dex + "]" + "[-" + bonus + "]"); } if (Con == 10) { System.out.println("Con: " + "[" + Con + "]" + "[0]"); } else if (Con > 10) { int bonus = 0; for (int i = 11; i < Con + 1; i++) { if (i % 2 == 0) { bonus = bonus + 1; } } System.out.println("Con: " + "[" + Con + "]" + "[+" + bonus + "]"); } else { int bonus = 0; for (int i = Con; i < 10; i++) { if (!(i % 2 == 0)) { bonus = bonus + 1; } } System.out.println("Con: " + "[" + Con + "]" + "[-" + bonus + "]"); } if (Int == 10) { System.out.println("Int: " + "[" + Int + "]" + "[0]"); } else if (Int > 10) { int bonus = 0; for (int i = 11; i < Int + 1; i++) { if (i % 2 == 0) { bonus = bonus + 1; } } System.out.println("Int: " + "[" + Int + "]" + "[+" + bonus + "]"); } else { int bonus = 0; for (int i = Int; i < 10; i++) { if (!(i % 2 == 0)) { bonus = bonus + 1; } } System.out.println("Int: " + "[" + Int + "]" + "[-" + bonus + "]"); } if (Wis == 10) { System.out.println("Wis: " + "[" + Wis + "]" + "[0]"); } else if (Wis > 10) { int bonus = 0; for (int i = 11; i < Wis + 1; i++) { if (i % 2 == 0) { bonus = bonus + 1; } } System.out.println("Wis: " + "[" + Wis + "]" + "[+" + bonus + "]"); } else { int bonus = 0; for (int i = Wis; i < 10; i++) { if (!(i % 2 == 0)) { bonus = bonus + 1; } } System.out.println("Wis: " + "[" + Wis + "]" + "[-" + bonus + "]"); } if (Cha == 10) { System.out.println("Cha: " + "[" + Cha + "]" + "[0]"); } else if (Cha > 10) { int bonus = 0; for (int i = 11; i < Cha + 1; i++) { if (i % 2 == 0) { bonus = bonus + 1; } } System.out.println("Cha: " + "[" + Cha + "]" + "[+" + bonus + "]"); } else { int bonus = 0; for (int i = Cha; i < 10; i++) { if (!(i % 2 == 0)) { bonus = bonus + 1; } } System.out.println("Cha: " + "[" + Cha + "]" + "[-" + bonus + "]"); } choice= sc.nextLine(); System.out.println("Type r if you want to re-roll or any other Character if you want to Continue: "); } while(choice.equals("r")); } }
Что я уже пробовал:
Я пробовал это использовать для циклов, но, очевидно, мне нужно, чтобы он работал по крайней мере один раз, так что нет. Я действительно понятия не имею, почему это происходит.