Это немного странно, я думаю. Моя петля не петляет, и я понятия не имею, почему. Нет сообщения об ошибке. Программа просто проходит один раз. Это игра, которую я создаю, которая заставляет вас бросать 1-9 кубиков, и вы получаете возможность удалить это число из списка чисел 1-9 или удалить сам номер. Это ПРЕДОСТЕРЕЖЕНИЕ произойдет до тех пор, пока на плате не останется номеров. Но ... петля не петляет !!!Моя петля не петляет
public class gudmundur_skilaverkefni9 {
public static void main (String[] args) {
System.out.println("Godan dag. Thu ert ad spila Larus.");
System.out.println("1 2 3 4 5 6 7 8 9");
int N = 9;
boolean[] Spilafylki = new boolean[10];
for (int i = 1; i <= N; i++) {
System.out.println("Sladu inn slembitolu til ad kasta teningunum.");
int teningakast = StdIn.readInt();
int teningatala = (int) (Math.random() * 10);
System.out.println("Thu fekkst " + teningatala + ".");
if (teningatala != 2) {
System.out.println("Viltu taka ut " + teningatala
+ " eda velja tvaer tolur sem mynda summu af "
+ teningatala + "? (1/2)");
int tala2 = StdIn.readInt();
if (tala2 == 2) {
System.out.println("Slaid inn fyrri tolu:");
int fyrritala = StdIn.readInt();
System.out.println("Slaid inn seinni tolu:");
int seinnitala = StdIn.readInt();
while (fyrritala+seinnitala != teningatala
|| fyrritala == seinnitala){
System.out.println("Thetta gengur ekki! Valdirdu nokkud somu toluna tvisvar? Reyndu aftur:");
System.out.println("Slaid inn fyrri tolu:");
fyrritala = StdIn.readInt();
System.out.println("Slaid inn seinni tolu:");
seinnitala = StdIn.readInt();
}
System.out.println("Nu litur spilid svona ut:");
Spilafylki[fyrritala] = true;
Spilafylki[seinnitala] = true;
for (i = 1; i <= N; i++) {
if (Spilafylki[i] == false)
System.out.print(i + " ");
else
System.out.print(" ");
}
System.out.println();
}
if (tala2 == 1) {
Spilafylki[teningatala] = true;
System.out.println("Nu litur spilid svona ut:");
for (i = 1; i <= N; i++) {
if (Spilafylki[i] == false)
System.out.print(i + " ");
else
System.out.print(" ");
}
System.out.println();
}
}
else {
System.out.println("Thu fekkst tvo. Ekki er hægt ad velja tvaer olikar natturulegar tolur sem mynda 2.");
System.out.println("Nu litur spilid svona ut:");
Spilafylki[teningatala] = true;
for (i = 1; i <= N; i++) {
if (Spilafylki[i] == false)
System.out.print(i + " ");
else
System.out.print(" ");
}
System.out.println();
int count = 0;
for (i = 1; i <= N; i++)
if (Spilafylki[i] == true)
count++;
if (count == 9) {
System.out.println("Allar tolurnar eru farnar. Takk fyrir ad spila Larus.");
break;
}
}
}
}
У вас есть вложенные петли. Не используйте одну и ту же переменную 'i' для вложенных циклов. Откройте ваш отладчик, и вы получите ответ быстрее. –
Для любого случайного числа нет цикла (кроме проверки правильности ввода). Какой цикл вы ожидаете в цикле больше? –
BTW Я бы использовал BitSet, это будет намного проще в использовании. например вы можете просто распечатать его. –