Java IF statement controleren met text

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Sweatleek
  • Registratie: Maart 2016
  • Laatst online: 10-07 16:50

Sweatleek

404: Member Not Found

Topicstarter
Beste medetweakers,
Mijn vraag is als volgt. Hoe kan ik tekst van een user controleren in een IF statement (zie code, is een voor beeld van wat ik probeer). Ik zit er nu al een uuren mee te *** maar helaas lukt het niet

Gebruiker krijgt een vraag en daar moet die dan "Ja OF Nee" op beantwoorden. En gebaseerd daar op gaan we veder.

Code
Scanner input = new Scanner(System.in);
System.out.print("Ja of nee: ");
String A= input.next();
if(A =="Ja"){
System.out.println("Test Ja");
}
else if(A =="Nee"){
System.out.println("Test Nee");
}
else{System.out.println("probeer het opnieuwe");
Side question is het mogelijk om java code eerder te stopen als je B.V Nee zegt ?
_/-\o_

confused reality

Beste antwoord (via Sweatleek op 04-09-2017 21:33)


  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
== doet in Java niet wat je wellicht verwacht: https://stackoverflow.com...between-vs-equals-in-java

'eerder stoppen' hangt sterk af van de context, maar waarschijnlijk ben je op zoek naar het
code:
1
return
statement. Je kunt ook een groter blok in je if {} statement hangen.

Van beide neem ik aan dat ze in de leermethode die je volgt (tutorial / boek / colleges?) besproken worden.

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
== doet in Java niet wat je wellicht verwacht: https://stackoverflow.com...between-vs-equals-in-java

'eerder stoppen' hangt sterk af van de context, maar waarschijnlijk ben je op zoek naar het
code:
1
return
statement. Je kunt ook een groter blok in je if {} statement hangen.

Van beide neem ik aan dat ze in de leermethode die je volgt (tutorial / boek / colleges?) besproken worden.

Acties:
  • 0 Henk 'm!

  • PhilipsFan
  • Registratie: Oktober 2003
  • Laatst online: 19-07 12:41
moet waarschijnlijk iets zijn als:

if (A.equals("Ja"))

Java is een objecttaal, variabelen zijn niet wat je verwacht dat ze zijn. Wat jij nu doet is het object A (wat een String is) vergelijken met een ander object. En nee, die zijn dan niet gelijk aan elkaar. Je wilt alleen te tekst vergelijken...

Acties:
  • +1 Henk 'm!

  • Sweatleek
  • Registratie: Maart 2016
  • Laatst online: 10-07 16:50

Sweatleek

404: Member Not Found

Topicstarter
ValHallASW schreef op maandag 4 september 2017 @ 20:07:
code:
1
return
statement. Je kunt ook een groter blok in je if {} statement hangen.
Yes het werkt alleen krijg ik nu wel een error na dat hij die "return" doet

code:
1
2
3
return
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - illegal start of expression
    at test.file.Test.main(Test.java:22)

confused reality


Acties:
  • +3 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sweatleek schreef op maandag 4 september 2017 @ 20:41:
[...]

Yes het werkt alleen krijg ik nu wel een error na dat hij die "return" doet

code:
1
2
3
return
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - illegal start of expression
    at test.file.Test.main(Test.java:22)
Doe eens gek en zoek eens op wat return doet en hoe je 't gebruikt ipv het je hier laten voorkauwen ;)

Verder: Waar hoort mijn topic?
WEB >> PRG

[ Voor 6% gewijzigd door RobIII op 04-09-2017 20:56 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • xFeverr
  • Registratie: Juni 2011
  • Laatst online: 19-07 10:54
Toch niet de ; vergeten hé?

Kom op, een string vergelijken met een andere string in java, het internet staat er vol mee. Dat hoef je echt niet te vragen op dit forum. Inderdaad equals gebruiken, klaar. Het liefst nog alles toLower of toUpper zodat je ook die invoerfouten eruit vist.

Dit is wel enorm basis. Straks ga je nog vragen wat minimaliseren is in Windows

[ Voor 12% gewijzigd door xFeverr op 04-09-2017 21:13 ]


Acties:
  • 0 Henk 'm!

  • Sweatleek
  • Registratie: Maart 2016
  • Laatst online: 10-07 16:50

Sweatleek

404: Member Not Found

Topicstarter
xFeverr schreef op maandag 4 september 2017 @ 21:12:
Toch niet de ; vergeten hé?

Kom op, een string vergelijken met een andere string in java, het internet staat er vol mee. Dat hoef je echt niet te vragen op dit forum. Inderdaad equals gebruiken, klaar. Het liefst nog alles toLower of toUpper zodat je ook die invoerfouten eruit vist.

Dit is wel enorm basis. Straks ga je nog vragen wat minimaliseren is in Windows
Ja klopt :D. was er ook al achter gekomen

@RobIII Ik zal de volgenden keer je advies opvolgen ;)


In geval bedankt all :9

confused reality


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
xFeverr schreef op maandag 4 september 2017 @ 21:12:
Het liefst nog alles toLower of toUpper zodat je ook die invoerfouten eruit vist.
equalsIgnoreCase

Als je wat dieper gaat (i18n) heeft overigens elk van deze methoden zijn pro's en cons (zie hier bijvoorbeeld).

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • xFeverr
  • Registratie: Juni 2011
  • Laatst online: 19-07 10:54
Die kan ook nog ja... Doet me denken aan de turkey test!

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
xFeverr schreef op maandag 4 september 2017 @ 21:42:
Die kan ook nog ja... Doet me denken aan de turkey test!
Hence the "Als je wat dieper gaat (i18n)" ;)
Voor een simpele ja/nee prima bruikbaar though.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +3 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-07 15:38
xFeverr schreef op maandag 4 september 2017 @ 21:12:
Toch niet de ; vergeten hé?

Kom op, een string vergelijken met een andere string in java, het internet staat er vol mee. Dat hoef je echt niet te vragen op dit forum. Inderdaad equals gebruiken, klaar. Het liefst nog alles toLower of toUpper zodat je ook die invoerfouten eruit vist.

Dit is wel enorm basis. Straks ga je nog vragen wat minimaliseren is in Windows
En wat voegt dit toe? Strings vergelijken met == is een enorm veelvoorkomende fout in Java omdat ten eerste dit in veel andere talen wel werkt en ten tweede Strings een uitzondering zijn in Java. Hoewel het gewoon een class is, lijkt het voor veel mensen een primitive. Dit werkt namelijk wel:

Java:
1
String foo = "hello";


En dit werkt ook:

Java:
1
String foo = "hello " + "world";


Sterker nog; dit returned true:

Java:
1
"hello" == "hello";


Laat zo'n sneer dus maar achterwege; het is gewoon een beginner en dit is een gewone beginnersfout.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 19-07 23:19
Hydra schreef op dinsdag 5 september 2017 @ 07:46:
[...]


En wat voegt dit toe? Strings vergelijken met == is een enorm veelvoorkomende fout in Java omdat ten eerste dit in veel andere talen wel werkt en ten tweede Strings een uitzondering zijn in Java. Hoewel het gewoon een class is, lijkt het voor veel mensen een primitive. Dit werkt namelijk wel:

Java:
1
String foo = "hello";


En dit werkt ook:

Java:
1
String foo = "hello " + "world";


Sterker nog; dit returned true:

Java:
1
"hello" == "hello";


Laat zo'n sneer dus maar achterwege; het is gewoon een beginner en dit is een gewone beginnersfout.
toon volledige bericht
Dit soort dingen zijn een van de redenen waarom static code analysis zo enorm waardevol is, en wat mij betreft een must-have in alle projecten. Een foutje als dit is zo gemaakt, vooral door beginners (no offense, gewoon een uitlokkende eigenaardigheid van Java). Een gemiddelde linting tool haalt dat er zo voor je uit, en geven vaak ook aanwijzigingen naar de correcte oplossing. Een slimme IDE kan het soms zelfs voor je refactoren.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-07 15:38
ThomasG schreef op dinsdag 5 september 2017 @ 09:19:
Dit soort dingen zijn een van de redenen waarom static code analysis zo enorm waardevol is, en wat mij betreft een must-have in alle projecten. Een foutje als dit is zo gemaakt, vooral door beginners (no offense, gewoon een uitlokkende eigenaardigheid van Java). Een gemiddelde linting tool haalt dat er zo voor je uit, en geven vaak ook aanwijzigingen naar de correcte oplossing. Een slimme IDE kan het soms zelfs voor je refactoren.
Absoluut. Je IDE waarschuwt ook voor == comparisons op strings maar een beginner zou best in Notepad kunnen werken. Een beginner zal waarschijnlijk geen automated builds met Maven ofzo hebben met daarin FindBugs. Reden te meer om ze niet, nadat het juiste antwoord al gegeven is, nog eens af te gaan zitten zeiken.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • xFeverr
  • Registratie: Juni 2011
  • Laatst online: 19-07 10:54
Hydra schreef op dinsdag 5 september 2017 @ 07:46:
[...]
Laat zo'n sneer dus maar achterwege; het is gewoon een beginner en dit is een gewone beginnersfout.
Uiteraard is het een beginner, daar heb ik niks op tegen. Maar deze typische beginnersfout heeft echt iedereen wel meegemaakt. Dit staat dus ook echt overal op internet. Hoe zou dit forum er uit komen te zien als er alleen maar vragen op gepleurt worden die zo enorm basis zijn.

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-07 15:38
xFeverr schreef op dinsdag 5 september 2017 @ 11:22:
Uiteraard is het een beginner, daar heb ik niks op tegen. Maar deze typische beginnersfout heeft echt iedereen wel meegemaakt.
Reden te meer om hem gewoon ff te helpen. Wat al gebeurd was, dus je reactie voegde helemaal niks toe.

https://niels.nu

Pagina: 1