Torea89 Skrevet 26. desember 2012 Del Skrevet 26. desember 2012 (endret) Her er koden: import java.util.Scanner; class Choice { public static void main(String[] args) { String ch = "y"; Scanner key = new Scanner(System.in); while (ch == "y") { System.out.print("What is your choice?(y or n): "); ch = key.nextLine(); //ch = "y"; } } } Den skal ganske enkelt gå rundt helt til man sier n, altså den skal fortsette hvis man taster y. Problemer er at den slutter selv om jeg taster "y". Hvis jeg fjerner // på den siste der så fortsetter koden. Så jeg tror problemet ligger i at når den leser inn "y" så blir det ikke helt lagret som det eller? Endret 26. desember 2012 av Torea89 Lenke til kommentar
Faller Skrevet 26. desember 2012 Del Skrevet 26. desember 2012 Jeg ville nok heller brukt en if/else-løkke til det du skal bruke. Jeg er ikke veldig dyktig selv, men mener at det er en mer passende løkke i denne sammenhengen på grunn av måten de fungerer på. Mvh Faller Lenke til kommentar
Torea89 Skrevet 26. desember 2012 Forfatter Del Skrevet 26. desember 2012 (endret) Jeg ville nok heller brukt en if/else-løkke til det du skal bruke. Jeg er ikke veldig dyktig selv, men mener at det er en mer passende løkke i denne sammenhengen på grunn av måten de fungerer på. Mvh Faller Hei, jeg prøvde å lage ny kode med if/else, får samme problem, den fortsetter ikke selv om jeg taster y. Jeg forandret ikke så mye på koden, if/else bare for å teste om det ble tastet inn y, for så å sette en boolsk verdi til true eller false om løkken skal gjentas: import java.util.Scanner; class Choice { public static void main(String[] args) { boolean cont = true; Scanner key = new Scanner(System.in); String ch; while (cont) { System.out.print("What is your choice?(y or n): "); ch = key.nextLine(); if (ch != "y"){ cont = false;} } } } Endret 26. desember 2012 av Torea89 Lenke til kommentar
Martin HaTh Skrevet 26. desember 2012 Del Skrevet 26. desember 2012 Grunnen til at koden din ikke fungerer er at du bruker likhetsoperatoren(==) på to Strings. Dette fungerer ikke, fordi en String er ett objekt, og ikke en primitiv verdi. Dette er en veldig vanlig nybegynnerfeil, fordi Strings blir gjerne satt i samme gruppe som int, char, double etc. selv om de er veldig forskjellige. Det du må gjøre er å bruke funksjonen equals(). while (ch == "y") { System.out.print("What is your choice?(y or n): "); ch = key.nextLine(); } blir til: while (ch.equals("y")) { System.out.print("What is your choice?(y or n): "); ch = key.nextLine(); } 1 Lenke til kommentar
Torea89 Skrevet 27. desember 2012 Forfatter Del Skrevet 27. desember 2012 Takk for hjelpen! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå