Gå til innhold

[Løst] enkel kode, men funker ikke


Anbefalte innlegg

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 av Torea89
Lenke til kommentar
Videoannonse
Annonse

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 av Torea89
Lenke til kommentar

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();
 }

  • Liker 1
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...