(Noob java kérdés) Mi a baj a kódommal?
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int number;
System.out.println("What is 3x2?");
number = s.nextLine();
if(number == 6){
System.out.println("Correct!");
}else{
System.out.println("Try again!");
}
}
}
Az Eclipse a 7. sorba írja a hibát (Type mismatch: cannot convert from String to int)
És ne röhögjetek ki, pár napja kezdtem :P
number = s.nextLine();
Ugye az egyik int, a másik string. Nem egyértelmű az átalakítás, erre van külön függvény.
Így nem a stringet alakítod, hanem egyből számot olvasol ki.
Köszi!
Így belegondolva tényleg elég egyértelmű :)
Használj ciklust. Alapvetően kétfajta ciklus létezik: az elöltesztelős (azaz először ellenőrzi a feltételt, aztán ha az teljesül, akkor végrehajtja a ciklusmagot; Java-ban for és while ilyenek), vagy a hátultesztelős (először mindenképp lefut a ciklusmag, utána ellenőrzi, hogy fennálnak a feltételek; Java-ban do-while ilyen). Ha végiggondolod, te mindenképp azt akarod, hogy egyszer lefusson->hátultesztelős kell. Tehát:
int number;
boolean correct;
do {
System.out.println("What is 3x2?");
number = s.nextInt();
correct = (number == 6); // elvégzi az összehasonlítást, eredményét berakja a correct változóba.
if (correct) {
//...
} else {
//...
}
} while (correct == false);
Isten vagy, köszi :D
2 óra keresgélés nem segített, de a válaszod alapján sikerült megértenem.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!