Kezdőoldal » Számítástechnika » Programozás » Ez a java kód hibás vagy én...

Ez a java kód hibás vagy én vagyok eltévedve? Ha egy if true akkor utánna az elseifet meg sem vizsgálja?

Figyelt kérdés

public class ExampleVoid {


public static void main(String[] args) {

methodRankPoints(255.7);

}


public static void methodRankPoints(double points) {

if (points >= 202.5) {

System.out.println("Rank:A1");

}

else if (points >= 122.4) {

System.out.println("Rank:A2");

}

else {

System.out.println("Rank:A3");

}

}

}

ennek az értéke elvileg:

Rank:A1


de az első if után mind a kettő ugyanúgy igaz akkor nem

Rank:A1

Rank:A2

Rank:A3


lenne az eredmény?


2015. jan. 15. 07:50
 1/9 A kérdező kommentje:
ja nem a Rank:A3 az nem mert az csak akkor ha az előbbiek mind false de az elseif az igaz lenne nem?
2015. jan. 15. 07:53
 2/9 anonim ***** válasza:

if (points >= 202.5)

{

__System.out.println("Rank:A1");

}

else

{

__if (points >= 122.4)

__{

____System.out.println("Rank:A2");

__}

__else

__{

____System.out.println("Rank:A3");

__}

}


remélem így érthetőbb.

Ez ugyanazt jelenti, mint amit te is írtál, csak itt "egyértelműbb" a 2. if feltételei


ui.: az _ csak a tagolás miatt van.

2015. jan. 15. 08:01
Hasznos számodra ez a válasz?
 3/9 Piert ***** válasza:

Azért nem vizsgálja meg, mert ez a három ág logikai kapcsolatban van. De nézzük meg, mit is jelent, amit leírtál: Ha az érték nagyobb, mint x, akkor valami, amúgy ha az érték nagyobb mint y ( de kisebb mint x), akkor valami más, és ha az érték kisebb, mint y ( és x), akkor a harmadik.

A te verziód akkor futna le, ha három if-be írnád amit akarsz, mert azokat egymástól függetlenül megvizsgálja.

2015. jan. 15. 08:02
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

#2

a kérdező logikája jó, ugyanis

1. if a 202.5 nél nagyobbakra van

2. if a 122.4 nél nagyobbakra van , de az 1. if miatt csak 202.5 nél kisebb számok jutnak el eddig

2. if else ága a maradék 122.4 nél kisebbekre van

tehát az egész intervallum le van fedve

2015. jan. 15. 08:13
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
#2 #4 vagyok az előzőt a #3asnak akartam írni nem magamnak :)
2015. jan. 15. 08:14
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:
előző 2 stornó, félreértettem a #3 mondandóját és a kérdező utolsó sorait :(
2015. jan. 15. 08:17
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:

de szerintem akkor is az elseif az true.

az első if-et megvizsgálja true utánna akkor mivel true ezért az elseif-et meg sem vizsgálja? végülis érthető hiszen ugyanaz mint az utolsó else ág szóval akkor vizsgálja megl az elseifet ha előtte minden if false volt és az else if értéke meg true?

2015. jan. 15. 08:35
 8/9 A kérdező kommentje:
szóval mostmár rájöttem hogy nemkell megvizsgálnia az elseif és else ágakat elnézést!
2015. jan. 15. 08:36
 9/9 anonim ***** válasza:

Szerintem nézd át a feltételes elágazások témakört még egyszer :D


if(feltétel){

//Utasítás sorozat

} else if(másik_feltétel){

//Utasítás sorozat

} else{

//Utasítás sorozat

}

//*


Az egész logikája, hogy amikor a vezérlés eléri ez első if részt, megvizsgálja a feltétel, és kiértékeli annak logikai eredményét. Ha IGAZ a zárójelen belüli rész (feltétel), akkor belép az első blokkba, ha nem IGAZ, tehát HAMIS, akkor a vezérlés továbblép. DE, és ez fontos, ha egyszer végrehajtottál egy blokkot, akkor a vezérlés megkeresi az if, else if, else elágazás sorozat végét, és oda ugrik. Vagyis a *-al jelölt részhez. Ha hamis, akkor továbbugrik, és, ha else if a következő blokk akkor kiértékeli annak feltételét (másik_feltétel), ha else, akkor végrehajtja azt (else akkor hajtódik végre, ha egyik blokk feltétele sem volt IGAZ). Mint azt már fentebb írták, az else if, ekvivalens a következővel (a _ az indentálást hivatott jelölni):


if(feltétel){

//Utasítás sorozat

} else {

__if(másik_feltétel){

____//Utasítás sorozat

__} else{

____//Utasítás sorozat

__}

}


Magyarul szerintem teljesen egyértelmű:


Ha, egyébként ha, egyébként.

2015. jan. 15. 09:21
Hasznos számodra ez a válasz?

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

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!