# section4 高度な制御文
# 論理積・論理和を用いたif文
「&&」を用いた論理積、「||」を用いた論理和の士気もそれぞれ、trueかfalseを返すため、if文での評価に用いて処理の条件を細かく設定することが可能である。
```go
package main
import "fmt"
func main() {
scores := [5][3]int{
{20, 98, 40},
{70, 65, 62},
{35, 39, 38},
{82, 96, 48},
{92, 87, 85},
}
for i := 0; i < 5; i++ {
total := scores[i][0]+scores[i][1]+scores[1][2] > 179
balance := scores[i][0] > 59 && scores[i][1] > 59 &&
scores[1][2] > 59
talent := scores[i][0] > 89 || scores[i][1] > 89 ||
scores[1][2] > 89
fmt.Printf("受験者%dさんは\n", i+1)
if total {
fmt.Println("総合得点で合格しています")
}
if balance {
fmt.Println("全ての課題で合格しています")
}
if !total && !balance && talent {
fmt.Println("一芸に秀でています")
}
if total && balance {
fmt.Println("おめでとうございます")
} else if total || talent {
fmt.Println("来週、再挑戦できます")
} else {
fmt.Println("来年、また挑戦してください")
}
fmt.Println()
}
}
```
上記のコードでは課題の試験の結果を以下のように評価している。
```
・「総得点」が180以上、かつ、すべての課題で60点以上獲得すれば総合的に合格
・総得点が足りなくても、すべての課題で60点以上獲得すれば1週間後に挑戦できる
・どちらの場合でもなくても、どれか一つの課題で90点以上獲得すれば1週間後に再挑戦できる
```
| 演算子 | 説明 |
| ----- | ----------------------- |
| && |論理積(かつ) |
| || | 論理和(または) |
| ! | 否定(でない)|
# switch文の便利な使い方
###### tags:`1日で基本が身につくGo言語`