題目描述

給定X和Y兩個整數,並比較兩數的大小。



原題網址

輸入格式

第一行輸入整數X,第二行輸入整數Y。

輸出格式

輸出只有一行。如果X小於Y,輸出「X is less than Y」;如果X大於Y,輸出「X is greater than Y」;如果X等於Y,輸出「X is equal to Y」。

範例輸入1

5
2

範例輸出1

X is greater than Y

範例輸入2

2
2

範例輸出2

X is equal to Y

範例輸入3

2
3

範例輸出3

X is less than Y

解題概念

利用「read」指令來從標準輸入中讀取整數X和整數Y。接著使用「test」指令或是中括號「[ ]」(中括號即為簡化的test)來實作比較功能。

「test」指令的「-gt」(greater than)參數為大於;「-lt」(less than)參數為小於;「-eq」(equal)參數為等於。

「&&」為AND邏輯運算子,兩邊運算元(即為指令)的執行結果都為true(0),就會回傳true(0),否則回傳false(1),若左邊運算元的執行結果為false(非0),會直接略過右邊運算元的執行而直接回傳false(1)。「||」為OR邏輯運算子,兩邊運算元有一個或是一個以上的執行結果為true(0),就會回傳true(0),否則回傳false(1),若左邊運算元的執行結果為true(0),會直接略過右邊運算元的執行而直接回傳true(0)。

參考答案

「test」指令版本:

#!/bin/bash
read x
read y
(test $x -gt $y && echo "X is greater than Y") || (test $x -eq $y && echo "X is equal to Y") || echo "X is less than Y"

中括號版本:

#!/bin/bash
read x
read y
([ $x -gt $y ] && echo "X is greater than Y") || ([ $x -eq $y ] && echo "X is equal to Y") || echo "X is less than Y"