SniKaZ Skrevet 15. oktober 2012 Del Skrevet 15. oktober 2012 Hei. Går første året dataingeniør og jobber nå med java. Har ganske god kunnskap angående med java, men det er en ting jeg ikke helt klarer å forstå. Det er ikke nødvendigvis en feil som er kritisk, siden jeg vet hva jeg må gjøre for å få det til sånn jeg vil, men jeg vil fortsatt vite hva som fører til det spesifikke problemet. boolean godkjent = false; if (godkjent = true) { //Do something. } Problemet her er da at if setninga setter godkjent til true. For å ordne problemet må jeg derfor skrive: if(godkjent == true) { //Do something. } Jeg forstår logikken i det, men jeg forstår ikke helt hvorfor jeg ikke får error i første setning, siden den if setninga er jo i bunn og grunn ubrukelig, siden den alltid vil gjøre hva som står inne i den siden den har ikke noe parameter for når den skal bli kjørt gjennom. Noen som bare kan forklare fort hvorfor det er lov å skrive sånn i en if setning? Og hva er formålet? På hvilken måte kan den vere nyttig? Lenke til kommentar
jonny Skrevet 15. oktober 2012 Del Skrevet 15. oktober 2012 "godkjent = true" setter godkjent til "true", men verdien av hele dette uttrykket er også "true", dermed vil if-setningen gi positivt svar. Du kan f.eks. bruke dette når du ønsker å sette flere variabler til samme verdi, slik: a = b = c = true; Lenke til kommentar
SniKaZ Skrevet 15. oktober 2012 Forfatter Del Skrevet 15. oktober 2012 Okei, takk for svar, men hvorfor gå da ikke dette med f.eks int for å sette flere int variabler til samme verdi? Det er jo bare med boolean akkurat dette fungerer. Lenke til kommentar
tomsi42 Skrevet 15. oktober 2012 Del Skrevet 15. oktober 2012 (endret) Når du har en int, (f.eks. i = 5) så blir sluttresultatet også en int - og det er ikke det samme som en boolean. Endret 15. oktober 2012 av tomsi42 Lenke til kommentar
GeirGrusom Skrevet 15. oktober 2012 Del Skrevet 15. oktober 2012 I C og C++ funker det med int også (0 = false, alt annet = true). Som nevnt er resultatet av en assignment venstrehåndsverdien. Dvs. resultatet av i = true er i, som vil være true. Dersom i er bool, vil resultatet være bool. Dette kan være hensiktsmessig av flere årsaker, og her er et eksempel: if((value = DoSomething()) == true) Genrelt sett så sjekker man ikke om booleske uttrykk er true eller false, ettersom booleske uttrykk er true eller false uansett. bool godkjent = false; if(godkjent) { ... } Noen synes det er hensiktsmessig for lesbarhet å uttrykke == true eller == false, men jeg synes ikke det. Lenke til kommentar
blackbrrd Skrevet 15. oktober 2012 Del Skrevet 15. oktober 2012 Enig med Mr Grusom, jeg foretrekker if(godkjent) eller if( !godkjent) framfor den hvor man sammenligner med true/false. Når man leser koden så blir det mye nærmere vanlig språk: "Hvis godkjent", "Hvis ikke godkjent". Istedetfor den litt lengre: "Hvis godkjent er sann". Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå