Kezdőoldal » Számítástechnika » Programozás » Kezdő Java kérdés: main ()...

Kezdő Java kérdés: main () metódusba bekért értéket hogyan tudok átadni más metódusnak?

Figyelt kérdés

Sziasztok, most ismerkedem a Java-val. A feladatom az lenne, hogy a main() metódusba kérjek be egy számot, majd egy másik metódus számítsa és írja ki annak dupláját.

Az alábbival próbálkoztam:

public static void main(String[] args){

Scanner scan = new Scanner(System.in);

System.out.print("Kérem, adjon meg egy számot!");

int szam = scan.nextInt();

}


private void dupla(){

int szamdupla = szam * 2;

System.out.println("A megadott szám kétszerese: " + szamdupla);

}


De itt a dupla() nem ismeri fel a main() által bekért számot. Hogyan tudok a kettő között kapcsolatot teremteni?


2014. jún. 2. 20:29
 1/9 anonim ***** válasza:
Ez nem Java kérdés, az alap programozósi kérdés. Egy metódus/függvény lokális változója nem látható más metódusok/függvények számára. Vagy át kell adnod paraméterben (ez a jobb megoldás itt), vagy globális változókat kell használnod, ami az adott objektumon belül minden metódus számára elérhető.
2014. jún. 2. 20:31
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

"vagy globális változókat kell használnod, ami az adott objektumon belül minden metódus számára elérhető"


Az ám, de a main az static.


"majd egy másik metódus számítsa és írja ki annak dupláját"


Ez mint feladat így eleve rosszra tanít szerintem, de mindegy. A legjobb az lenne, ha megkapná paraméterben, és az eredménnyel visszatérne.

Ebből a te feladatodban marad a paraméter.

2014. jún. 2. 20:43
Hasznos számodra ez a válasz?
 3/9 uno20001 ***** válasza:

private void dupla(int szam){

....


És így hívd meg a main-ben:

...

int szam = scan.nextInt();

dupla(szam);

...

2014. jún. 2. 20:46
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

Az ám, de a main az static.

...

Ebből a te feladatodban marad a paraméter.


Az, hogy a main statikus, az nem befolyásolja azt, hogy megoldható globális változóval, ha a változó is statikus...A hívott metódusnak ugyanis szintén statikusnak kell lennie, ha egy osztályban van a main metódussal...

2014. jún. 2. 20:50
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
Uno20001 magyarázata alapján megoldódott. Köszönöm mindenkinek a segítséget!
2014. jún. 2. 21:03
 6/9 anonim ***** válasza:
Hmm, azt magyaráztuk mi is, csak én szerettem volna, ha magadtól jössz rá, és nem bemásolod a megoldást...
2014. jún. 2. 21:04
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

Igen, és akkor minden static lesz, gyönyörű :D


Egyébként meg se érte válaszolni, látva, hogy hogyan "tanulnak" egyesek..

2014. jún. 2. 21:25
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

"Igen, és akkor minden static lesz, gyönyörű :D"

Igen, de hát az egy másik kérdés. ;) bár ilyen bonyolultságú alkalmazásnál még sok jelentősége nincs a dolognak. ;)

2014. jún. 2. 21:27
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

import java.util.Scanner;


public class Faq {


public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("Kérem, adjon meg egy számot: ");

dupla(scan.nextInt());

}


private static void dupla(int a) {

System.out.println("A megadott szám kétszerese: " + (a * 2));

}


}

2014. jún. 3. 11:45
Hasznos számodra ez a válasz?

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!