Varför fungerar inte "while loopen"?

Trädvy Permalänk
Medlem
Registrerad
Sep 2016

Varför fungerar inte "while loopen"?

package Skoluppgift30; import java.util.stream.*; import java.util.*; public class Programmeringsolympiaden { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //int par[] = { 2, 3, 2, 3, 2, 3, 2 }; int z = 0; int slag[] = new int[8]; int antalbanor; System.out.println("Hur många banor spelade du?: "); antalbanor = sc.nextInt(); int par[] = new int[antalbanor]; for (int x = 0; x<antalbanor/2 + 0.5 ;x++){ par[x] = 2; z++;} System.out.println(z); while (z<antalbanor){ z++; par[z] =3; } int summapar = IntStream.of(par).sum(); //int summapar = IntStream.of(par).sum(); for (int i = 0; i < antalbanor; i++) { System.out.println("Hur många slag slog du?: "); slag[i] = sc.nextInt(); if (slag[i] > 7) { slag[i] = 7; } } int summaslag = IntStream.of(slag).sum(); int totalt = summaslag - summapar; if (totalt < 0) { System.out.println("Du gick " + totalt + " på dessa omgångar"); } if (totalt > 0) { System.out.println("Du gick +" + totalt + " på dessa omgångar"); } } }

Detta är vad jag har skrivit hittills och notera för er som vet vad programmeringsolympiaden är så är detta en uppgift som jag redan har blivit testad för och gör nu uppgiften i efterhand. Förövrigt är jag väl medveten om att det är en riktigt dålig kod då jag är extremt nybörjare. Men det jag undrar över är varför while loopen där jag jämför "z" med "antalbanor" inte fungerar. Om jag ersätter den med en "if" så fungerar koden som önskat (fungerar alltså till viss del men den körs ju bara en gång och jag skulle vilja köra den flera gånger) Om någon vill förklara varför det inte fungerar eller ge något tips så är jag mycket glad över det!

La till code-taggar
Trädvy Permalänk
Medlem
Registrerad
Nov 2006

Kan du lägga in koden i kodtaggar så är det lättare att läsa.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Registrerad
Sep 2016

@Kiane: Ursäktar för min dåliga kunskap om denna sida och hur man gör så du får gärna berätta hur man gör. Och om det är något man gör när man programmerar så vet jag fortfarande inte vad det är.. hehe

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Okt 2006

Kod-taggar fixade.

Lägg kod inom

[code] [/code]

för att få det snyggt presenterat

Du har en for-loop innan while-loopen där du ökar z vilket betyder att z inte kommer vara 0 när while-loopen kör igång. Det är förmodligen vad som ställer till det för dig.

Trädvy Permalänk
Medlem
Registrerad
Sep 2016

@Shimonu: Okej, det är med mening att z inte är 0 men tack! Håller på att försöka lösa problemet på andra sätt atm.

Trädvy Permalänk
Medlem
Registrerad
Feb 2011

Jag testade koden, och jag antar att du menar att problemet med koden är att den kraschar i while-loopen. Detta är på grund av att Z blir för stort. Arrayen räknar från 0 till antalslag-1. Men Z blir till antalslag, och då säger datorn nej. Alltså sätt while (z<antalbanor) till while (z<antalbanor-1).
Ursäkta om jag misshandlar språket, har inte programmerat på evigheter.

Trädvy Permalänk
Medlem
Registrerad
Sep 2016

@oliver0187: Tack så mycket!! Min kod fungerar "perfekt" nu