Avatar billede ascii Nybegynder
07. maj 2002 - 00:27 Der er 10 kommentarer og
1 løsning

If løkke.

Hvorfor virker det her ikke. Ligemeget hvad brugernavn og password er, så hopper den ind i løkken.

if(brugernavn==textField1.getText() && password==textField2.getText());
    {
    }
brugernavn og password er string 
Avatar billede erikjacobsen Ekspert
07. maj 2002 - 00:29 #1
det er ikke en løkke (det kan du sige om while og for):


if(brugernavn.equals(textField1.getText()) && password.equals(textField2.getText()))
    {
    }
Avatar billede bearhugx Nybegynder
07. maj 2002 - 00:31 #2
mon ikke du skulle bruge

if( brugernavn.equals(textField1.getText()) && password==textField2.getText() )

i stedet for ....

ellers så tester du på om String-objekterne har samme hashcode og ikke på indholdet af stengene

/Søren
Avatar billede ascii Nybegynder
07. maj 2002 - 00:33 #3
Kom med et svar
Avatar billede bearhugx Nybegynder
07. maj 2002 - 00:33 #4
??? - Da jeg startede med at skrive, var der ikke nogle indlæg --- Det tog mig kun ca. 1 minut og skrive - og alligevel er Eriks post indsat for to minutter siden :-))) ....

Mystisk!
Måske er deres cache ikke så optimal alligevel :-)))

/Søren
<< Som selvfølgelig er enig i Eriks løsningsforslag *LOL* >>
Avatar billede erikjacobsen Ekspert
07. maj 2002 - 00:35 #5
Det er nok min supersoniske ADSL linie
Avatar billede bearhugx Nybegynder
07. maj 2002 - 00:36 #6
Og så må jeg jo lige rette mig selv :-)) (når det nu skal gå så forbistreret hurtigt)...

både brugernavn _OG_ password skal benytte sig at .euqals()-metoden

dvs.

if( brugernavn.equals(textField1.getText())
&& password.equals(textField2.getText()) )
{
}
Avatar billede logical Nybegynder
07. maj 2002 - 01:25 #7
Og derudover fjern semicolon fra enden af if-linien. Det er altid en showstopper.
Avatar billede bearhugx Nybegynder
07. maj 2002 - 01:30 #8
Logical --> og gemt i det semikolon ligger også grunden til, hvorfor "den heletiden hopper ind i løkken"... :-)

Ligemeget om udsagnet ville være sandt eller ej, vil betingelsen (og dertilhørende DO-clause) slutte ved ';'

Derefter vil programudførelsen bare fortsætte ned i {}-blokken

/Søren
Avatar billede jkrag Nybegynder
07. maj 2002 - 08:09 #9
bearhugx ->
Så vidt jeg ved tester == på strenge IKKE på om de har samme hashcode.
Den tester på objektlighed, og netop på strenge giver dette anledning til den lidt specielle detalje at den tester om de to strenge refererer til samme strengobject i String-poolen (ihvertfald hvis den ene af strenge er konstantærklæret.)
Avatar billede erikjacobsen Ekspert
07. maj 2002 - 10:27 #10
Det er korrekt, jkrag.

Derimod kan .equals() implenteres til først at kigge på hashcode.
Er de forskellige er strengene forskellige. Er de 2 hashkode ens,
må den så møjsommeligt spadsere igennem tegn for tegn.
Avatar billede bearhugx Nybegynder
07. maj 2002 - 10:30 #11
Aha - så blev jeg så klogere :-)))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester