iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0

上集解答

fun main(){
    var a = readln().toInt()
    var b = readln().toInt()
    var c = a.toDouble() / b.toDouble()
    println(c)
}

不知道大家有沒有做出來呢~


判斷

在程式中,如果電腦只會照著我們的數學運算的話,那就太弱了,所以我們顯然要讓他可以幫我們判斷一些東西吧。

在這裡我們要學一個新的語法 —— if,他的寫法長這樣。

if(布林值){
	要做的事
}

這個布林值在變數宣告有學過,總共有兩種值,true跟false,但具體我們要怎麼用呢,最常見的取得一個布林值的方法就是用我們的比較運算子啦。

符號 用法 功能
== a==b 回傳a、b是否相等
!= a!=b 回傳a、b是否不相等
> a>b 回傳a是否大於b
>= a>=b 回傳a是否大於等於b
< a<b 回傳a是否小於b
<= a<=b 回傳a是否小於等於b

所以比如說我們要判斷一個數字是不是大於13,我們可以這樣寫。

var a:Int = 15
var check:Boolean = a>13

if(check){
    println("Yes, $a is greater then 13")
}

或者更簡單點,我們可以直接塞這個運算進入if的掛號內,因為他回傳的正是布林值。

var a:Int = 15
if(a>13){
    println("Yes, $a is greater then 13")
}

既然都有【如果】了,那【如果不然】應該要怎麼寫呢?

同樣用剛剛的範例來說,最簡單的方法。

var a:Int = 15
if(a>13){
    println("Yes, $a is greater then 13")
}
if(a<=13){
	println("No, $a is not greater then 13")
}

我們可以透過邏輯來找出完全相反的狀況來if,不過其實kotlin有提供更便捷的語法給我們。

var a:Int = 15
if(a>13){
    println("Yes, $a is greater then 13")
}
else{
	println("No, $a is not greater then 13")
}

但是這裡要注意喔,這個else跟if是伴生,你一定需要有if才能用,所以如果今天只需要else的部分,你還是只能用if那塊直接空著,或是邏輯來反寫你的if。

如果你今天有很多個條件想判斷,你可以用else if。

比如範例我想要判斷a跟13的大小關係,我可以這樣寫。

var a = 13
if(a==13){
    println("equal!")
}
else if(a<13){
    println("low!")
}
else{
    println("high!")
}

而且其實中間要有多少個else if都沒有關係,最後面也不一定需要else,但if一定要存在。

而且一定要注意的是,他的判斷順序是由上而下的,只要上面的對了,下面的就算也對他也不會執行裡面的東西喔。

喔對了,還有一種特殊的寫法叫做巢狀,那就是妳是可以在你的if裡面再寫一個if的喔。

比如說這樣

if(a>13){
	if(a>20){
	
	}
	else{
	
	}
}

像這裡就是需要注意的小地方,裡面那個else是屬於裡面的if的,不是外面的if的喔。

所以為了避免搞混,我們通常裡面一層會使用tab(鍵盤上Q左邊那個鍵),他會幫我們按四個空格,就可以很好的別人哪段程式碼在哪一層了,各位如果注意過的話,我所有程式碼都是有好好縮排的喔。


關於大括號

說個小故事,其實大括號有兩種寫法,兩種寫法在Kotlin都可以。

if(){

}

if()
{

}

下面那個俗稱下放,雖然兩個寫法都可以,但我超討厭下放的啦。


布林的運算子

大家應該已經知道了if是怎麼使用,這裡在介紹幾個對布林值使用的運算子,可以幫助你用的更順。

符號 用法 功能
&& a&&b a、b皆為true才回傳true,其他回傳false
|| a||b a、b至少一個為true才回傳true,其他回傳false。如果找不到的話,這個是enter上面的鍵喔。
! !a 目前唯一一個一元運算子,他能回傳a的反值,如果原本是true就回傳false,如果原本是false就回傳true

比如我今天除了想知道一個人有沒有成年,如果成年我還想知道他是不是偶數歲,我可以這樣寫。

var age = 20
if(age>=18 && age%2==0){
    println("Yes!")
}

課堂練習~

櫛風老師在家教時對學生考了一次試,想要知道學生的等第,請你幫幫他完成這個程式吧。

輸入

一個100以內的正整數或0,代表學生的成績。

輸出

請輸出學生的等第,對照表如下

成績 等第
90~100 A
60~89 B
40~59 C
0~ 39 D

上一篇
[Day09][語法]運算
下一篇
[Day11][語法]迴圈
系列文
櫛風風的「完全不會寫程式,從零開始的 Kotlin 教學」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言