Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: HASTER: if/else ikke samarbeidsvillige

4 views
Skip to first unread message

Lars Christian Jensen

unread,
Oct 13, 2004, 12:18:54 PM10/13/04
to

On Wed, 13 Oct 2004, Andreas Tellefsen wrote:

> Evnt hvordan kunne jeg ellers gjøre det? Vi har altså 3 tall, og vi vil
> finne ut hvilket av de tre som er det minste. Vi snakker om nybegynner
> her, så selv om det kanskje finnes enklere (som i mindre kode) måter å
> gjøre det på, så er det med en if-sjekk at jeg vil gjøre det, tror
> jeg...

if fungerer bra det. Den enklere muligheten du snakker om kan være:

System.out.println(Math.min(a, Math.min(b, c)));


--
Lars Christian Jensen

Geir Harris Hedemark

unread,
Oct 13, 2004, 12:06:05 PM10/13/04
to
Andreas Tellefsen <xgr...@NOSPAMmac.com> writes:
> if(talla < tallc) {
> System.out.println(talla); // skriver ut talla siden det er minst
}
> else {
> System.out.println(tallc); // skriver ut tallc siden det er minst
(...)

Ellers: ha "} else {" på en linje for seg selv - det er enklere å se
slikt da.

Geir

Andreas Tellefsen

unread,
Oct 13, 2004, 12:16:54 PM10/13/04
to

Fant nettopp ut min feil med litt hjelp - men takk for tipset, må
begynne med den strukturen. Da slipper jeg forhåpentligvis liknende
problemer i fremtiden.

Jan Vidar Krey

unread,
Nov 18, 2004, 3:59:24 AM11/18/04
to
Andreas Tellefsen wrote:

Kortere notasjon for å gjøre det samme:
System.out.println( talla < tallb ? tallb < tallc ? talla : tallc : tallb);

Ellers så hadde du glemt en krøllparentes forran første else.

--
Mvh

Jan Vidar Krey

Haakon Nilsen

unread,
Nov 18, 2004, 4:40:53 PM11/18/04
to
Jan Vidar Krey wrote:

> Kortere notasjon for å gjøre det samme:
> System.out.println( talla < tallb ? tallb < tallc ? talla : tallc :
> tallb);

Et godt eksempel på hvorfor "kortere" ikke alltid er "bedre".

Lars Christian Jensen

unread,
Nov 19, 2004, 7:00:01 AM11/19/04
to

Det morsomme er at denne varianten verken er riktig eller gjør det samme
som originalen. Faktisk er den heller dårligere; dersom du permuterer tre
forskjellig tall, feiler originalen bare(??) i 1 av 6 tilfeller, mens
denne bommer på 2 av 6.

--
Lars Christian Jensen

Jan Vidar Krey

unread,
Nov 20, 2004, 10:13:00 AM11/20/04
to
Lars Christian Jensen wrote:
> Det morsomme er at denne varianten verken er riktig eller gjør det samme
> som originalen. Faktisk er den heller dårligere; dersom du permuterer tre
> forskjellig tall, feiler originalen bare(??) i 1 av 6 tilfeller, mens
> denne bommer på 2 av 6.
>

Ja, var litt for rask der, den andre teststen skulle naturilgvis sjekket
talla (ikke tallb) mot tallc slik at den ville være lik originalen, og for
å være helt korrekt skulle b og c sjekkes opp mot hverandre dersom første
testen feiler.
Den korrekte setningen blir slik:

System.out.println(a < b ? a < c ? a : c : b < c ? b : c);

Personlig vil jeg foretrekke én slik linje fremfor 10 linjer med dødkode -
forutsatt at det virker! :)

-jv-

--
Jan Vidar Krey

Message has been deleted

Morten

unread,
Dec 7, 2004, 12:26:46 PM12/7/04
to
da hadde JEG foretrukket at du hadde skrevet
//Griseri som skriver ut det minste tallet av a,b,c
over, så jeg slapp å lese den koden :-)

Are Nybakk

unread,
Oct 10, 2007, 5:57:51 PM10/10/07
to
Andreas Tellefsen wrote:
> Nå har jeg fremdeles ikke så mye erfaring med java syntaks, men kan noen
> fortelle meg hvorfor følgende kode ikke funker?
>
> ---
> if(talla < tallb) {

> if(talla < tallc) {
> System.out.println(talla); // skriver ut talla siden det er
> minst
> else {
> System.out.println(tallc); // skriver ut tallc siden det er minst
> }
> }
>
> else {
> System.out.println(tallb); // skriver ut tallb siden det er minst
> }
> }
> ---

Ser jo ut som om du har fått orden på det. Som nybegynner er det greit å
tydliggjøre klammeparantesene som Geir er inne på. Også når det bare er
en linje som skal utføres.

//...

if(betinglese)
{
//...
}
else
{
//...
}

//...

> Det er noe med disse else'ene, og jeg regner med det er en liten
> syntaks-feil, men klarer ikke å se hva det skulle være, etter å ha sett
> opp og ned på det flere ganger... på forhånd takk!

0 new messages