Gå til innhold

Anbefalte innlegg

Skrevet

Jeg har lett og lett, men klarer ikke finne ut hva den motsatte funksjonen av "equals()" er. Altså, jeg vil finne til "equals()" det som "!=" er til "==". Finnes en slik funksjon overhodet? Jeg prøvde meg med denne, "while((gender.equals("male") == false))", men til ingen nytte.

 

Setter stor pris på råd. Takk.

Videoannonse
Annonse
Skrevet
Har du prøvd dette?

 

while( !gender.equals( "male" ) ) {

EXPLODE!

}

 

Ah jeg prøvde meg med !equals, men det er slik det fungerer ja. Thank you! :)

Gjest Slettet+1374861
Skrevet

er i en del andre tilfeller også mer logisk (vertfall for meg) å bruke "!" fremfor "!=".

eksempelvis:

 

boolean bool = false;

// Jeg foretrekker...
if(!bool) // Jeg leser her: "hvis ikke bool"
....

// Fremfor...
if(bool == false) // Jeg leser her: "bool er lik usant"
....

 

Naturligvis litt smak og behag, men du trenger vertfall ikke benytte "!=" overalt der det er mulig, så nå har du vertfall sett alternativet :)

Skrevet (endret)

Jeg blir hinsides gal av å ikke finne feilen i denne lille koden. Er noen i stand til å fikse den, eller evt. sette opp en ny kode for simpel sjekk på om variabelen inneholder "male" eller female"? JOptionPane dukker opp i uendelighet slik det er nå, selv om jeg gir korrekt verdi.

 

http://rafb.net/p/WQNoMG43.html

Endret av Gaius1981
Skrevet

Jeg har ikke mulighet for å teste java her selv, men hva skjer om du skriver ting med litt mindre brackets? Og hva med å sjekke med et annet parameternavn i tilfelle det er scoping som ødelegger for deg.

 

if ( newGender.equals( "male" ) || newGender.equals( "female") ) {
this.gender = newGender;
}

 

Når det kommer til WHILE-løkka skal det være &&, ikke ||.

Skrevet

Først kan jeg si at hovedproblemet ditt er at du ikke kan logikk. I while-løkken må du enten ha

while (!gender.equals("male") && !gender.equals("female")) {

eller

while (!(gender.equals("male") || gender.equals("female"))) {

.

 

Du skriver nederst i nopaste-en din:

Og er det uansett ikke noen mer praktisk måte å sjekke om variabelen er "male" eller "female"?
Jo, to alternativer er klare:
  • boolsk variabel: boolean isFemale
  • enum Gender

Nå er jeg usikker på om du har hatt enum-er på skolen, og hvordan du programmerer, men det beste hadde nok vært med en JComboBox, dersom du programmerer GUI (evt. en radiobutton).

Gjest Slettet+1374861
Skrevet

er vel generellt bad manner å ta inn strenger som parameter i ett metodekall i en slik sammenheng, der de kan representeres med andre mer konkrete verdier.

som nevnt kan enum være pent. muligens en char der du på en eller annen måte dokumenterer hva hver char representerer. konstanter. osvosv.

 

problemet med string, og å ta det inn via ett tekstfelt er jo at det kan skrives på en million måter og hvis brukeren kan gjøre noe feil, så kommer den til å gjøre det.

 

*nn*

Skrevet (endret)

Er jo mulig å legge inn while(!(gender.equalsIgnoreCase("male") || gender.equalsIgnoreCase("female"))) for å slippe problemet med de millioner forskjellige muligheten å skrive male og female på. Men en enum eller en bolsk variabel er en del penere.

Endret av NevroMance

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...