前面也曾經提過,輸入跟輸出也是程式很重要的一部分,不過我們今天教的是只在終端機介面輸出而已,其他的方法就有待你們自己去發掘了。
輸出的話,我們已經學過了一個 println ,他的功能相信大家大概已經知道了,print + line,也就是輸出一行。
另外也有一個函式叫做print,他輸出之後不會換行喔。
fun main(){
print("hello")
println("hi")
}
比如上面這個程式碼,他的輸出會長下面這個樣子。
helloHi
不過輸出也不是那麼簡單,這個時候就要提到Kotlin的字串有一個很酷的語法。
字串簡單來說就是透過兩個雙引號刮住的一段文字,像這樣
"I love you"
不過Kotlin有一個很棒的方法,讓你可以把變數鑲嵌進字串裡面,用一個$符號就可以了。
var a:Int = 123
Var str:String = "your number is $a"
只要像這個樣子就可以將變數嵌入你的字串,換句話說你想要輸出一個變數只要:
var number:Int = 123
println("your number: $a ")
在Kotlin的輸入,有非常多種方式,甚至包括你也可以去調用Java原本的scanner來用,不過在這裡,我們先學一個簡單暴力的叫做readLn()
使用方法如下
var a = readln()
他就會把一整行輸入作為字串存進我們的a裡面。
這裡我們可以再回憶上一篇的內容,如果我們希望可以得到一個是整數呢?
var a:Int = readln().toInt()
println(a)
(像這種 「資料.函式()」 的形式,我們有個特殊的名字叫做 方法 method,在後面的文章會更仔細的介紹喔,不過可以先注意一下,他其實是可以直接這樣串接在readln後面,那是因為readln就已經得到了一個字串,是拿這個字串去轉成int)
那如果今天的輸入是很多比資料在一行呢?
這裡我們可以使用字串的另一個method,叫做split(),他可以幫我們以特定字串做切割,只要放在split的括號內喔。
split 會幫我們把他切割成一個 List,一個類似於字串陣列的東西,所以我們會可以用迴圈來取得他的資料(陣列迴圈也是之後才會教的內容喔~~)
fun main(){
var a = readln().split(" ")
println(a)
for(i in 0..a.size-1){
println(a[i])
}
}
ps. 雖然其他的教學可能會教你使用readline()來輸入,不過那會需要教到空值相關的問題,這個雖然是Kotlin特色而且很棒的特性,不過這裡我就懶得教了)
輸出「Hi my name is XXX, i‘m XXX years old.」,結尾要換行,XXX的部分請用變數先存起來。