Stránka 1 z 1

Malý problém s java projektem (začátečnický)

Napsal: 14 čer 2014 13:41
od MasterOfShadow
Ahoj všichni. Budu moc rád když mi pomůžete :) Začal jsem se pomalinku učit v javě a tak jsem si vzpomněl na jeden úkol, který mám v knize C++. Snažím se ho udělat v javě (Ne nepomáham si díváním do knihy) Ale mám tady takový problém a nevím jak ho vyřešit O.o Prosím jenom rady, které pochopím :D

Kód: Vybrat vše

import java.util.Scanner;


public class podminky {


   public static void main(String[] args) {
            
      System.out.println("Zadejte váš věk");
      Scanner in = new Scanner(System.in);
      int vek;
      vek = in.nextInt();
      
      System.out.println("Zadejte vaší národnost ve zkratce (USA,CZ,...)");
      Scanner in1 = new Scanner(System.in);
      String narodnost;
      narodnost = in1.nextLine();
      
      if (vek >= 18 && narodnost == "USA")
         {System.out.println("Můžete jít k volbám");}
      else if (vek < 18 && narodnost == "USA")
         {System.out.println("Nemůžete jít k volbám nejsem plnoletí");}
      else if (vek > 18 && narodnost != "USA")
         {System.out.println("Nemůžete jít k volbám nemáte americké občanství");}
      else
         {System.out.println("Nemůžete jít k volbám nejste plnoletí ani nemáte americké občanství");}


A problém je takový.. (viz okopírovaná konzole spuštěného kodu)

Kód: Vybrat vše

Zadejte váš věk
18
Zadejte vaší národnost ve zkratce (USA,CZ,...)
USA
Nemůžete jít k volbám nejste plnoletí ani nemáte americké občanství

Nechápu proč mi to nejde když obě podmínky splněné jsou.. Možná o bude tou negací v

Kód: Vybrat vše

else if (vek > 18 && narodnost != "USA")

Ale nevím bohužel jestli je to ono ani jak to vyřešit, protože negace mi dělají problém. Děkuji všem za rady! :)

Re: Malý problém s java projektem (začátečnický)

Napsal: 14 čer 2014 13:53
od domitea
Důvod je ten, že String je v Javě objekt -> to znamená, že String "USA" a "USA" nejsou to samé (Jsou to dva rozdílné objekty) a nemůžeš je tedy porovnávat "klasickým způsobem". String má metodu equals, přes ni se porovnávají ;)

Re: Malý problém s java projektem (začátečnický)

Napsal: 14 čer 2014 13:58
od MasterOfShadow
aaha.. Takže.. Jakou proměnnou bych měl to string nahradit?

Re: Malý problém s java projektem (začátečnický)

Napsal: 14 čer 2014 14:02
od domitea
Nijak, prostě místo:

Kód: Vybrat vše

if (String == String)


budeš porovnávat Stringy takhle:

Kód: Vybrat vše

if(String.equals(String))


Samozřejmě si tam dosaď názvy proměnných a název metody nemusí být přesný ;)

Pak je tu ještě možnost porovnávat je jako pole charů, ale to není zrovna ideální....

Re: Malý problém s java projektem (začátečnický)

Napsal: 14 čer 2014 14:10
od MasterOfShadow
Díky moc, nějak se s tím poperu :)

--- Doplnění předchozího příspěvku (14 Čer 2014 16:17) ---

Nějak mi to pořád nefunguje :D Mohl bys mi prosím pomoct s dosazením do kodu? Jak mám to if tak jak to mám udělat i s tím věkem. Díky