Visual Basic -ohjelmointi Toistorakenteet -Silmukat, eli loopit 9.4.2017
Silmukat, eli loopit Toistorakenteita, joilla pyritään lyhentämään ja yksinkertaistamaan koodia Toistorakenteita käytetään paljon Tiettyjen toistorakenteiden suurin vaara on ikuiset loopit, eli toistorakenteet jotka eivät koskaan pääty. Varmista, että loopissa on lopetusehto 9.4.2017
Silmukat, eli loopit… Kirjoitetaan esim. 1.2.3…100, jokainen numero omalle rivilleen ilman looppia TextBox1.Text = ”1” & VbCrLf TextBox1.Text = TextBox1.Text & ”2” & VbCrLf TextBox1.Text = TextBox1.Text & ”3” & VbCrLf … TextBox1.Text = TextBox1.Text & ”100” & VbCrLf 9.4.2017
Silmukat, eli loopit… Kirjoitetaan esim. 1.2.3…100, jokainen numero omalle rivilleen loopilla Dim i As Integer For i = 1 To 100 TextBox1.Text = TextBox1.Text & i & vbCrLf i?= Next 9.4.2017
Silmukat, eli loopit… For ehto …Next -Turvallisin -Toteutetaan vain ehdon täyttyessä Do While ehto … Loop -Ikuisen loopin vaara Do … Loop While ehto -1.kerta toteutetaan aina, koska ehto lopussa 9.4.2017
For…Next Esitellään apumuuttuja esim. i Dim i As Integer Rakennetaan looppi For i=aloitusnumero to lopetusnumero [Step 2] … ’Toteutetaan vain ehdon täyttyessä Next Apumuuttuja i:n arvo kasvaa automaattisesti yhdellä joka kierroksella, Step:llä voidaan määritellä muu kasvu 9.4.2017
Do While … Loop Esitellään apumuuttuja esim. i Dim i As Integer = aloitusnumero Rakennetaan looppi Do While i <= lopetusnumero … ’Toteutetaan vain ehdon täyttyessä i=i+1 Loop Apumuuttuja i:n arvo kasvaa vain, mikäli sitä kasvatetaan. (i=i+1 unohtuu -> ikuinen looppi) 9.4.2017
Do … Loop While Esitellään apumuuttuja esim. i Dim i As Integer = aloitusnumero Rakennetaan looppi Do … ’1.kerta toteutetaan aina i=i+1 Loop While i < lopetusnumero Apumuuttuja i:n arvo kasvaa vain, mikäli sitä kasvatetaan. (i=i+1 unohtuu -> ikuinen looppi) 9.4.2017
Do While -esimerkki toistokerrat=toistokerrat-1 Dim toistokerrat As Integer = 3 Do While toistokerrat>0 kirjoita (”Ollaan toistossa!”) toistokerrat=toistokerrat-1 kirjoita (”Jäljellä ” & toistokerrat & ” toistoa”) Loop 9.4.2017
Mitä eroa edelliseen? Dim toistokerrat As Integer =1 Do While toistokerrat>0 kirjoita (”Ollaan toistossa!”) toistokerrat=toistokerrat+1 kirjoita (”On tehty ” & toistokerrat & “toistoa”) Loop 9.4.2017
Entä tämä? kirjoita (”Ollaan toistossa!”) Dim toistokerrat As Integer = 0 Do While toistokerrat>0 kirjoita (”Ollaan toistossa!”) kirjoita (”Tehdään” & toistokerrat & ” toistoa”) toistokerrat=toistokerrat+1 Loop 9.4.2017
Kertotaulu Laadi algoritmi, joka pyytää käyttäjältä InputBoxilla luvun ja kirjoittaa sen kertotaulun TextBoxiin yhdestä kymmeneen, esimerkiksi 3, 6, 9, 12, 15, 18, 21, 24, 27, 30. Jokainen luku voi olla omalla rivillään(vbCrLf). 9.4.2017
Yhteenlasku Laadi algoritmi, joka lukee käyttäjän antamia lukuja niin kauan, kunnes sille syötetään luku 0. Ohjelma laskee lukemansa luvut yhteen ja tulostaa summan. 9.4.2017
Yhteenlasku Laadi algoritmi, joka lukee käyttäjän antamia lukuja niin kauan, kunnes sille syötetään lopetusmerkiksi 9999. Ohjelma laskee lukemansa luvut yhteen (ei lopetusmerkkiä) ja tulostaa summan. 9.4.2017
Lukujen syöttäminen Tee algoritmi, joka pyytää käyttäjältä yksinumeroisen luvun. Negatiivisetkin luvut kelpaavat. Ohjelma tarkistaa saamiaan lukuja, kunnes syötetty luku on kelvollinen. 9.4.2017
Toiset potenssit Kirjoita ohjelma, joka tulostaa lukujen 1..20 toiset potenssit seuraavasti: 1 * 1 = 1 2 * 2 = 4 3 * 3 = 9 4 * 4 = 16 5 * 5 = 25 jne 9.4.2017