Sisäkkäiset for-lauseet Javassa (newbie)

Opiskelen javan alkeita ja edessäni on lyhyt esimerkki sisäkkäisistä (allekkaisista) for-lauseista.
Olen yrittänyt miettiä miten java kääntää järjestyksessä for-lauseet, mutta ajatus tuntuu hankalalta. esim:

for(x=0; x
7391
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Hi newbie,

My Finnish is not very good, so I'll reply to you in English...

If you format you're programming following standard guidelines, you'll get :

for (x = 0 ; x < 3; x)
for (y = 0; y < 2; y)
System.out.println(x " " y);

As you can see, first the inner-loop (with the "y") is processed, when this is ready, x is incremented (the outer-loop) and the inner-loop starts all over again. This happens until the outer-loop stops.

If you want to get you're expected output, you could write something like :

for (x = 0, y = 0 ; x < 3; x, y) {
if (y > 1)
y = 0;      
System.out.println(x " " y);
}
      

Äänestä

Hi newbie,

My Finnish is not very good, so I'll reply to you in English...

If you format you're programming following standard guidelines, you'll get :

for (x = 0 ; x < 3; x)
for (y = 0; y < 2; y)
System.out.println(x " " y);

As you can see, first the inner-loop (with the "y") is processed, when this is ready, x is incremented (the outer-loop) and the inner-loop starts all over again. This happens until the outer-loop stops.

If you want to get you're expected output, you could write something like :

for (x = 0, y = 0 ; x < 3; x, y) {
if (y > 1)
y = 0;      
System.out.println(x " " y);
}
      

Äänestä
  • Kiitos Mikki avustasi!

    Eli tulkitsen asian nyt näin:

    Koko homma riippuu alemmasta for-lauseesta eli tässä tapauksessa y:stä. Kun sen jatkamisehto saa arvokseen epätoden, x:n lisätään 1 ja pyöritetään y:tä taas kunnes se on epätosi ja x:n lisätään taas 1.
    X saa tietenkin samoja arvoja y:n pyöriessä (ei siis kosketa siihen kun toinen looppi on kesken). Y:tä pyöritetään vielä kerran kunnes se loppuu ja tutkitaan, että ylemmänkin for-toiston ehto olisi epätosi eli 3 on suurempi kuin x, tällöin koko paska loppuu siihen. Testasin tätä myös muilla numeroarvoilla ja tulos oli yhdemukainen päättelyihini verrattuna.

    Aikaisemmin ajattelin, että for-lauseet suoritettaisiin vuorotellen tai ikään kuin yhtä aikaa, mutta se ei toiminut. Minusta on hankalaa ajatella tässä samoin kuin kone tai on ainakin hankalaa löytää sama ajattelutapa.

    Äänestä

  • Kiitos Mikki avustasi!

    Eli tulkitsen asian nyt näin:

    Koko homma riippuu alemmasta for-lauseesta eli tässä tapauksessa y:stä. Kun sen jatkamisehto saa arvokseen epätoden, x:n lisätään 1 ja pyöritetään y:tä taas kunnes se on epätosi ja x:n lisätään taas 1.
    X saa tietenkin samoja arvoja y:n pyöriessä (ei siis kosketa siihen kun toinen looppi on kesken). Y:tä pyöritetään vielä kerran kunnes se loppuu ja tutkitaan, että ylemmänkin for-toiston ehto olisi epätosi eli 3 on suurempi kuin x, tällöin koko paska loppuu siihen. Testasin tätä myös muilla numeroarvoilla ja tulos oli yhdemukainen päättelyihini verrattuna.

    Aikaisemmin ajattelin, että for-lauseet suoritettaisiin vuorotellen tai ikään kuin yhtä aikaa, mutta se ei toiminut. Minusta on hankalaa ajatella tässä samoin kuin kone tai on ainakin hankalaa löytää sama ajattelutapa.

    Äänestä

  • Java kirjoitti:

    Kiitos Mikki avustasi!

    Eli tulkitsen asian nyt näin:

    Koko homma riippuu alemmasta for-lauseesta eli tässä tapauksessa y:stä. Kun sen jatkamisehto saa arvokseen epätoden, x:n lisätään 1 ja pyöritetään y:tä taas kunnes se on epätosi ja x:n lisätään taas 1.
    X saa tietenkin samoja arvoja y:n pyöriessä (ei siis kosketa siihen kun toinen looppi on kesken). Y:tä pyöritetään vielä kerran kunnes se loppuu ja tutkitaan, että ylemmänkin for-toiston ehto olisi epätosi eli 3 on suurempi kuin x, tällöin koko paska loppuu siihen. Testasin tätä myös muilla numeroarvoilla ja tulos oli yhdemukainen päättelyihini verrattuna.

    Aikaisemmin ajattelin, että for-lauseet suoritettaisiin vuorotellen tai ikään kuin yhtä aikaa, mutta se ei toiminut. Minusta on hankalaa ajatella tässä samoin kuin kone tai on ainakin hankalaa löytää sama ajattelutapa.

    Tuli sekoiltua englanninkielisen ja suomenkielisen version kanssa ja suomenkielinen postautui kahdesti. joudut nyt tyytymään suomenkieliseen. Toivottavasti saat ajatuksistani selvää.

    Äänestä

  • Java kirjoitti:

    Kiitos Mikki avustasi!

    Eli tulkitsen asian nyt näin:

    Koko homma riippuu alemmasta for-lauseesta eli tässä tapauksessa y:stä. Kun sen jatkamisehto saa arvokseen epätoden, x:n lisätään 1 ja pyöritetään y:tä taas kunnes se on epätosi ja x:n lisätään taas 1.
    X saa tietenkin samoja arvoja y:n pyöriessä (ei siis kosketa siihen kun toinen looppi on kesken). Y:tä pyöritetään vielä kerran kunnes se loppuu ja tutkitaan, että ylemmänkin for-toiston ehto olisi epätosi eli 3 on suurempi kuin x, tällöin koko paska loppuu siihen. Testasin tätä myös muilla numeroarvoilla ja tulos oli yhdemukainen päättelyihini verrattuna.

    Aikaisemmin ajattelin, että for-lauseet suoritettaisiin vuorotellen tai ikään kuin yhtä aikaa, mutta se ei toiminut. Minusta on hankalaa ajatella tässä samoin kuin kone tai on ainakin hankalaa löytää sama ajattelutapa.

    Kannattaa kirjoittaa myös sitä koodia silleen loogisesti niin sen kulkua on myös helpompi seurata. Tyyliin näin.

    int x,y;

    for(x=0;x

    Äänestä

  • Piru kirjoitti:

    Kannattaa kirjoittaa myös sitä koodia silleen loogisesti niin sen kulkua on myös helpompi seurata. Tyyliin näin.

    int x,y;

    for(x=0;x

    Eli tabulaattori ei toimi, eli tätä tarkoitin


    for(blaablaa)
    {
    _______for(blaablaablaa)
    _______{
    ___________System.out....
    _______}

    }

    Äänestä

Kommentoi aloitusta


Java kirjoitti:

Opiskelen javan alkeita ja edessäni on lyhyt esimerkki sisäkkäisistä (allekkaisista) for-lauseista.
Olen yrittänyt miettiä miten java kääntää järjestyksessä for-lauseet, mutta ajatus tuntuu hankalalta. esim:

for(x=0; x

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu