Kezdőoldal » Számítástechnika » Programozás » (Noob java kérdés) Mi a baj a...

(Noob java kérdés) Mi a baj a kódommal?

Figyelt kérdés

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


2014. máj. 22. 17:58
 1/6 anonim ***** válasza:

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.


[link]

Így nem a stringet alakítod, hanem egyből számot olvasol ki.

2014. máj. 22. 18:17
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Elég beszédes ez a hibaüzenet, már ha tudsz angolul. A number nevű változód int típusú, nextLine visszatérési értéke String - nem tud implicit konvertálni a kettő között (esetleg JavaScripttel kezdted a programozási pályafutásod?). A Scanner osztály nextInt() metódusát használd inkább. Alternatíva, ha egy String típusú változóba olvasod be, aztán azt parse-olod (Integer.parseInt statikus metódussal).
2014. máj. 22. 18:19
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Köszi!

Így belegondolva tényleg elég egyértelmű :)

2014. máj. 23. 06:40
 4/6 A kérdező kommentje:
És még azt meg tudná válaszolni valaki, hogy hogy csináljam meg, hogy rossz válasz esetén újra feltegye a kérdést a progi?
2014. máj. 26. 20:10
 5/6 anonim ***** válasza:

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

2014. máj. 26. 20:38
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:

Isten vagy, köszi :D

2 óra keresgélés nem segített, de a válaszod alapján sikerült megértenem.

2014. máj. 26. 21:41

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!