Gå til innhold

Java vil ikke lese input


Anbefalte innlegg

Har jobbet på ett tekst basert Java spill i noen dager nå, og har allerede fått et problem som jeg ikke forstår bæret av!

 

Så det er slik: spilleren får ett valg helt på begynnelsen av spillet, hvor han blant annet kan få litt info om stats og slikt. Problemet mitt er at når jeg nå kjører spillet, og velger kommando valget, så skriver jeg inn info, og den bare gir meg to eller tre linjer å trykke enter på, det fungerer ikke

Lenke til kommentar
Videoannonse
Annonse

Her er Command funksjonen:

public void Command(){
	boolean cmdFound = false;
	while(!cmdFound){
	System.out.print("Please enter the command, or type help for a list of commands:");
	String cmd = bucky.nextLine();
	if(cmd=="help"||cmd=="Help"){
		baseFunction.CMDHelp();
		cmdFound = true;
	} else if(cmd=="Info" || cmd=="info"){
		cmdFound = true;
		System.out.print("Your character's name is ");
		System.out.println(this.Name);
		System.out.print("You are level ");
		System.out.println(this.Level);
		System.out.print("You have ");
		System.out.print(this.XP);
		System.out.println(" XP.");
	} else {
		System.out.println("Error: command not found");
	}}
}

 

Som blir kalt av GetAction():

public int GetAction(String Option1, String Option2, String Option3){
	int Answer;
	System.out.println("What do you want to do?");
	System.out.print("1)");
	System.out.println(Option1);
	System.out.print("2)");
	System.out.println(Option2);
	System.out.print("3)");
	System.out.println(Option3);
	System.out.println("4)Different command");
	Answer = bucky.nextInt();
	return Answer;
}

 

Som i sin tur blir kalt av en switch i Main(String args[])

Endret av zeezy
Lenke til kommentar

En feil du har er at du sammenligner stringer med ==. Bruk i stedet minString.equals("Noe annet"); evt minString.equalsIgnoreCase("Noe annet");

 

Når du bruker == på objekter så må de være det samme objektet for at sammenligningen skal fungere. At to stringer er like betyr ikke at de er det samme objektet.

 

Hvorvidt det er problemet du har nå vet jeg ikke, da det var litt vanskelig å forstå hva som skjedde/ikke skjedde.

Lenke til kommentar

Tipper at det har noe med

String cmd = bucky.nextLine();

 

Hva er bucky? Sjekk hva nextLine(); gjør på denne siden så ser du kanskje problemet. Uten å vite hvilken type bucky er, er det vanskelig å gi deg noen bedre tips.

 

Jeg ville forøvrig brukt en BufferedReader og metoden readLine() (se dokumentasjon samme sted for detaljer om dette).

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...