Avatar billede nutten Nybegynder
29. april 2001 - 21:05 Der er 14 kommentarer og
1 løsning

if-sætning

Jeg skal tjekke en brugers indtastning.
Han skal indtaste en værdi a, som SKAL være større eller lig med 3.
Jeg har
a = keyboard.nextInt();
if(a < 3){
System.out.println(\"Indtast gyldig værdi:\");
  a = keyboard.nextInt();
}
Hvis han så taster 1 kommer den rigtig nok ud og fortæller ham, han skal indtaste en ny gyldig værdi, men hvis han indtaster en forkert værdi igen, går programmet bare videre. Hvorfor tjekker programmet ikke if-sætningen, hver gang han taster en ny værdi ?
Avatar billede halfblind Nybegynder
29. april 2001 - 21:09 #1
prøv at lave en do-while
a = keyboard.nextInt();
do
{
System.out.println(\"Indtast gyldig værdi: \");
}while(a<3)
Avatar billede riversen Nybegynder
29. april 2001 - 21:09 #2
sæt a = 0

fjern a = keyboard.nextInt();
og erstat if med while
Avatar billede stigc Nybegynder
29. april 2001 - 21:09 #3
a = keyboard.nextInt();
while(a < 3){
System.out.println(\"Indtast gyldig værdi:\");
  a = keyboard.nextInt();
}
Avatar billede riversen Nybegynder
29. april 2001 - 21:10 #4
halfblind: nu er jeg selv rimelig newbie, men så går den da ikke tilbage til a= etc... eller?
Avatar billede riversen Nybegynder
29. april 2001 - 21:10 #5
jeg har selv klokket i det kan jeg også se....sorry.. ;-)
Avatar billede riversen Nybegynder
29. april 2001 - 21:10 #6
ja, ligesom stigc...
Avatar billede halfblind Nybegynder
29. april 2001 - 21:11 #7
riversen....har ikke testet den, men når man vil have at noget skal gentages mindst en gang og så længe betingelsen ikke er opfyldt, så er det bedst at bruge do-while
Avatar billede nutten Nybegynder
29. april 2001 - 21:12 #8
Jeg kan ikke fjerne a = keyboard.nextInt();
Så modtager jeg ikke input fra brugeren, derfor point til halfblind.

Tak for det.
Avatar billede riversen Nybegynder
29. april 2001 - 21:13 #9
ja, jeg lukke bare munden, men mener stadig at a = keyboard.nextInt();
kun vil blive udført en gang...
derfor tror jeg stic\'s var rigtigt...men som sagt er jeg newbie
Avatar billede stigc Nybegynder
29. april 2001 - 21:14 #10
så skal den også være rigtig:

do
{
a = keyboard.nextInt();
System.out.println(\"Indtast gyldig værdi: \");
}while(a<3)
Avatar billede halfblind Nybegynder
29. april 2001 - 21:15 #11
han kan bare afprøve den, duer den ikke....får han bare point tilbage.*ss*
Avatar billede stigc Nybegynder
29. april 2001 - 21:17 #12
så er du jo halvblind :)
Avatar billede halfblind Nybegynder
29. april 2001 - 21:18 #13
hmm....tror du?.*g*
Avatar billede nutten Nybegynder
29. april 2001 - 21:19 #14
a = keyboard.nextInt();
do
{
System.out.println(\"Indtast gyldig værdi: \");
}while(a<3);

virker perfekt, der skal bare sættes a = keyboard.nextInt(); efter system.out.println()-linien ellers kører den bare i uendelig løkke.
a = keyboard.nextInt() inde i \"do\" fanger det brugeren indtaster hvis den siger han skal indtaste ny værdi.

Avatar billede nutten Nybegynder
29. april 2001 - 21:19 #15
Og så var det egentlig det at do-while løser problemet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester