Tässä ohjelmassa opit kääntämään tietyn lauseen rekursiivisella silmukalla Kotlinissa.
Esimerkki: Lauseen kääntäminen rekursiota käyttämällä
fun main(args: Array) ( val sentence = "Go work" val reversed = reverse(sentence) println("The reversed sentence is: $reversed") ) fun reverse(sentence: String): String ( if (sentence.isEmpty()) return sentence return reverse(sentence.substring(1)) + sentence(0) )
Kun suoritat ohjelmaa, tulos on:
Käänteinen lause on: krow oG
Yllä olevassa ohjelmassa meillä on rekursiivinen toiminto reverse().
Jokaisessa iteraatiossa lisätään (ketjutetaan) seuraavan reverse()funktion tulos lauseen ensimmäiseen merkkiin käyttämällä charAt(0).
Rekursiivisen puhelun on oltava ennen charAt(), koska viimeiset merkit alkavat lisätä vasemmalle puolelle. Jos muutat järjestystä, päädyt alkuperäiseen lauseeseen.
Loppujen lopuksi päätämme tyhjään lauseeseen ja palautamme reverse()käännetyn lauseen.
| Toisto | käänteinen() | substing () | reversedString |
|---|---|---|---|
| 1 | taaksepäin ("mene töihin") | "o Työ" | tulos + "G" |
| 2 | taaksepäin ("o Work" | " Työ" | tulos + "o" + "G" |
| 3 | taaksepäin ("työ") | "Työ" | tulos + "" + "o" + "G" |
| 4 | taaksepäin ("työ") | "ork" | tulos + "W" + "" + "o" + "G" |
| 5 | taaksepäin ("ork") | "rk" | tulos + "o" + "W" + "" + "o" + "G" |
| 6 | taaksepäin ("rk") | "k" | tulos + "r" + "o" + "W" + "" + "o" + "G" |
| 7 | taaksepäin ("k") | "" | tulos + "k" + "r" + "o" + "W" + "" + "o" + "G" |
| Lopullinen | käänteinen("") | - | "" + "k" + "r" + "o" + "W" + "" + "o" + "G" = "kroW oG" |
Tässä on vastaava Java-koodi: Java-ohjelma lauseen kääntämiseksi








