Miksei alla oleva koodi toimi?
FOR y = 1 TO 5 FOR I = 1 TO 7 X = Rnd(39) IF ARVOTUT[x] = 1 THEN NEXT RIVIT[y, i] = x ARVOTUT[x] = 1 NEXT NEXT
Virhe tulee if lauseen perässä olevasta next käskystä
Mitä ohjelmasi kuuluisi tehdä?
En ole käyttänyt Gambas-kieltä, mutta luulisin, että NEXT-komento saa olla vain FOR-silmukan lopussa.
Kyseisessä for silmukassa tutkitaan onko taulukossa kohdassa arvo jo käytytty, jos on arvotaan uusi .Eli for silmukkaa EI ajeta loppuun jos kyseinen ehto täyttyy.
Joten lause 'for... if tapaus on tosi then next´ toimi aikanaan joillakin basic:lla.
Samoilla linjoilla Antin kanssa olen.
Itsekkään en Gambasia tunne, mutta useimmissa Basic-kielissä CONTINUE komento tuon kyseisen herjaavan NEXT komennon paikalla tekisi varmaankin haluamasi asian.
Tuo CONTINUE ratkaisi asian.
Kiitos.
Ei ratkaistunutkaan. Eipä huoli yhtään NEXT statementtiä tuon CONTINUE merkinnän jälkeen.
Täytynee tehdä tuo c:llä. Piti vain näyttää pojalle että ei kaikkeen tarvita c++.
koikko kirjoitti:
Ei ratkaistunutkaan. Eipä huoli yhtään NEXT statementtiä tuon CONTINUE merkinnän jälkeen.
En ole ikinä kuullutkaan Gambas-kielestä, mutta Googlella löytyi esimerkki CONTINUEn käytöstä Gambasissa. http://gambasdoc.org/help/lang/continue?view Kyllä tuossa on NEXT CONTINUEn jälkeen.
-tossu-:n linkkiä seuraamalla huomaa, että IF:n kanssa käytetään ENDIF:iä?
Joo ENDIF sinne vaaditaan.
Mielestäni tuo ei ole pakollinen kaikissa Basic:ssa, OK gambas sen vaatii.
koikko kirjoitti:
Joo ENDIF sinne vaaditaan.
Mielestäni tuo ei ole pakollinen kaikissa Basic:ssa, OK gambas sen vaatii.
Useimmissa Basiceissa menee niin, että jos THEN jälkeen on samalla rivillä käsky, niin ei tarvitse END IF ja jos ei ole käskyä, niin sitten END IF tarvitaan. Useimmissa Basiceissa ei myöskään THEN voi olla eri rivillä kuin IF.
Aihe on jo aika vanha, joten et voi enää vastata siihen.