Podmínka if – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Podmínka if – Java – Fórum – Programujte.comPodmínka if – Java – Fórum – Programujte.com

 

Spuštěný nový filmový web Filmožrouti.cz — vše o Avengers, Pacific Rim, Thor, Star Wars…
Jan
~ Anonymní uživatel
156 příspěvků
8. 6. 2018   #1
-
0
-

Zdravím,jsem samouk jazyku Java a potřeboval bych prosím vás poradit, nevím si už rady. Když chci zadat podmínku if ... Podmínka bude platit když do a dosadím slovo ano, ale když dám do podmínky a = ano, tak mi to ukáže chybu. Našel by se tu někdo kdo by mi poradil? Vše co jsem našel na internetu se netýka slov ale čísel. tady to je pro ukázku jak to mám napsané

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "Windows-1250");
 System.out.println("Jste připraven na první otázku?");
 String a;
 a = sc.nextLine();
 if (a = ano) {
     System.out.println("tak se rovnou vrhneme na otázku!");
 }
 else {
     System.out.println("Tak tedy počkáme až budete připraven");
 }

děkuji za odpověď

Nahlásit jako SPAM
IP: 193.165.96.–
MilanL+1
Věrný člen
8. 6. 2018   #2
-
0
-

#1 Jan
ano musí být v té podmínce v uvozovkách

a ještě bych to upravil

 a = sc.nextLine();

 a = a.toLowerCase();  - převede vstup na malá písmena kvůli tomu porovnávání
 if (a = "ano") {

nebo (vyzkoušej si to nebo co se ti bude víc líbit

if (a.toLowerCase() = "ano")

Nahlásit jako SPAM
IP: 185.112.167.–
gna
~ Anonymní uživatel
656 příspěvků
8. 6. 2018   #3
-
+1
-
Zajímavé
Kit +

Už z těch několika řádků nad tím je vidět, že řetězce se zapisují v uvozovkách.

A pak jedno rovnítko je pro přiřazení. Na test rovnosti je dvojité rovnítko (a == b).

Ale to by testovalo, jestli je na obou stranách operátoru ten samý objekt. Na porovnání řetězce podle obsahu je metoda equals. 

if (a.equals("ano"))
Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Věrný člen
8. 6. 2018   #4
-
0
-

#3 gna
máš pravdu, a.Equals("ano")

docela mě to vytáčí když pendluju mezi jazykama a každej ty věci řeší jinak, od operátorů přes formátování, definice a přiřazování a jiné průběhy (např case of, u C se provede vše od návěstí dané hodnoty po Break tzn třeba i návěstí dalších hodnot, Delphi udělá jen to co je pro dané návěsti)

Nahlásit jako SPAM
IP: 185.112.167.–
Kit+14
Guru
8. 6. 2018   #5
-
0
-

#4 MilanL
Tyto problémy jsem si vyřešil ve Vimu přetížením maker a automatických oprav. V každém jazyce píši stejně a v rámci automatických korektur mi to Vim přepíše podle syntaxe daného jazyka. "fun" se mi v PHP přepíše na "function", ale v Pythonu se to opraví na "def". Mělo by to jít v každém lepším editoru/IDE.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:710d:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
ondrej39+1
Věrný člen
9. 6. 2018   #6
-
+1
-
Zajímavé
Kit +

#3 gna

V Jave se jeste doporucuje to porovnani u takovych stringu otacet na "ano".equals(a). Predbezne opatreni proti NullPointerException. :)

Nahlásit jako SPAM
IP: 78.45.199.–
Inject all the dependencies!
Lukáš
~ Anonymní uživatel
294 příspěvků
9. 6. 2018   #7
-
0
-

#1 Jan if(a=="ano")by mělo fungovat 2 = jsou kvůli rozlišení od definování nové hodnoty

Nahlásit jako SPAM
IP: 37.48.50.–
Kit+14
Guru
9. 6. 2018   #8
-
0
-

#7 Lukáš
Tak si to zkus, že if (a=="ano") nefunguje.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:7d7a:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Lukáš
~ Anonymní uživatel
294 příspěvků
9. 6. 2018   #9
-
0
-

#8 Kit
Zkoušel jsem, a co by na tom nemělo fungovat? mě to jde.

Nahlásit jako SPAM
IP: 37.48.50.–
Kit+14
Guru
9. 6. 2018   #10
-
0
-

#9 Lukáš
Ukaž. Načti si scannerem slovo "ano" a porovnej to == se stringem "ano". Vyjde ti false.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:7d7a:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
KIIV
~ Moderátor
+43
God of flame
9. 6. 2018   #11
-
0
-

#9 Lukáš
Java ma prakticky vse jako reference. Tim a == "ano" srovnavas, jestli je a umistene na stejnem miste jako "ano". Coz samozrejme neni. Teoreticky by se to mohlo stat, pokud si drive udelal  a = "ano"  a pak udelal  a == "ano". Ale to zalezi na optimalizaci jazyka.

Nahlásit jako SPAM
IP: 178.41.247.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kit+14
Guru
9. 6. 2018   #12
-
0
-

#11 KIIV
Nejen teoreticky. Pokud v Javě vytvoříš dva stringy "ano", Java to optimalizuje na jeden string se dvěma odkazy. Výsledkem je, že test na rovnost těchto stringů v prototypu dává true, ale pokud druhý string přijde z jiného datového zdroje, tak porovnání dá false. Je to docela zrádné.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:d46a:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Podmínka — založil Filip

Podmínka If C++ — založil Jonasberg

Podmínka where — založil spartan13

Podmínka IF — založil pawlik

IF A ELSE - podmínka — založil Morello

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý