Gå til innhold

Input fra consoll i while løkke


Anbefalte innlegg

Hei!

 

Står litt fast :)

 

Har et konsollbasert javaprogram hvor programmet kjøres på nytt igjen mot at brukeren skriver "ja". Inni while løkka kan brukeren velge mellom tre alternativ, også i konsollen - men her har jeg et problem! Fra første gang er jo variabelen initialisert, og har fått en verdi. Derfor hopper den glatt over å få en ny user input neste gang while løkka kjøres. What to do? En måte å slette en variabel på?

Lenke til kommentar
Videoannonse
Annonse

Skriver i pseudokode om det er greit. Er klar over at det finnes noen piratløsninger etter hvor en putter while løkka, men interresert i om det fins noen direkte løsninger:

 

 

-Ber om user input-

input = user input // dette bestemmer om while løkken skal kjøres, eks: vil du kjøre while løkke?

While (user input equals "ja"){

-Ber om user input-

variabel = user input // her bes det om user input, f.eks: krokanis eller sjokoladeis? noe som bestemmer resultatet av metodekallet

metodekall(variabel)

metoder..

-Ber om user input-

input = user input // her bestemmes altså om løkka skal kjøres igjen

}

 

Problemet nå er at variabelen "variabel" allerede er bestemt etter forrige gang en kjørte while løkka - her vil jeg at brukeren skal få bestemme en ny variabel for hver gang en kjører løkka.

 

Beklager for pseudokoden og mangelen på kodeklammer, programmert store deler av dagen så er litt smålei for i dag ;)

Endret av Deneb
Lenke til kommentar

Jeg går utifra at du ikke hadde noe håndfast, siden du kun skrev pseudokode, så her er et enkelt forslag:

 

import java.util.Scanner;

public class test
{
public static void main(String[] args)
{
	Scanner dataFraTastatur = new Scanner(System.in);

	do
	{
		/*
			Innhold som skal loopes...
		*/
		System.out.println("Arbeider..");

		/*
			Inndata fra bruker, fortsette / avbryte loop
		*/
		System.out.print("Fortsette loop, 'ja' / 'nei': ");

	} while ("ja".equalsIgnoreCase(dataFraTastatur.next()));
}
}

Lenke til kommentar

Problemet nå er at variabelen "variabel" allerede er bestemt etter forrige gang en kjørte while løkka - her vil jeg at brukeren skal få bestemme en ny variabel for hver gang en kjører løkka.

 

Den gamle verdien i variabelen blir jo overskrevet hver gang brukeren gir input, så jeg ser ikke helt problemet ditt?

Lenke til kommentar

Såvidt jeg forstår ønsker han å velge om koden skal kjøres eller ei fra begynnelsen.

Da kan du legge do-while løkken inne i en if-løkke slik som nedenfor.

 

import java.util.Scanner;

public class untitled {
public static void main(String[] args) {
	Scanner kbd = new Scanner(System.in);

	System.out.println("Vil du kjøre gjennom løkken?");
	boolean fortsette = kbd.nextBoolean();
	boolean fortsette2 = false;

	if (fortsette) {
		do {
			/**
			* Her kan du skrive koden din
			*/
			System.out.println("Vil du kjøre gjennom en gang til?");
			fortsette2 = kbd.nextBoolean();
		} while (fortsette2);
	}
}
}

 

Dersom du vil kunne skrive ja/nei istedenfor true/false må du spørre etter en string og gjøre den om til en boolean med f.eks if-løkker.

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...