需求為:從鍵盤輸入分?jǐn)?shù),以此來(lái)判斷,0-59為不及格,打印“您沒(méi)有及格,請(qǐng)下次努力!”,60-79為及格,打印“您的成績(jī)及格,請(qǐng)更加努力!”,80-100為成績(jī)良,打印“您的成績(jī)?yōu)閮?yōu)秀,請(qǐng)?jiān)俳釉賲?”,如果輸入為0-100以外的分?jǐn)?shù),請(qǐng)打印“您的成績(jī)?yōu)閮?yōu)秀,請(qǐng)?jiān)俳釉賲?”
如果采用ruby方式,代碼比較精簡(jiǎn),如下所示:
復(fù)制代碼 代碼如下:
#!/usr/bin/ruby
print "請(qǐng)輸入您的分?jǐn)?shù): "
grade = gets.to_i
#grade = name.to_i
case grade
when 0..60
puts "您沒(méi)有及格,請(qǐng)下次努力!"
when 61..79
puts "您的成績(jī)及格了,請(qǐng)更加努力!"
when 80..100
puts "您的成績(jī)?yōu)閮?yōu)秀,請(qǐng)?jiān)俳釉賲?"
else
puts "您輸入的數(shù)值有誤,請(qǐng)輸入一個(gè)0-100之間的值!!"
end
SHELL中如果用if多支選擇的方法,代碼為:
復(fù)制代碼 代碼如下:
#!/bin/bash
read -p "Please input your score:" Score
if [ $Score -ge 0 -a $Score -le 59 ];then
echo "您沒(méi)有及格,請(qǐng)下次努力!"
elif [ $Score -ge 60 -a $Score -le 79 ];then
echo "您的成績(jī)及格,請(qǐng)更加努力!"
elif [ $Score -ge 80 -a $Score -le 100 ];then
echo "您的成績(jī)?yōu)閮?yōu)秀,請(qǐng)?jiān)俳釉賲?"
else
echo "您輸入的成績(jī)超出合理值,請(qǐng)重新輸入!"
fi
SHELL中如果用case的方法就比較麻煩了,代碼為:
復(fù)制代碼 代碼如下:
#!/bin/bash
read -p "請(qǐng)輸入你考試的分?jǐn)?shù):" score
case "$score" in
[0-9])
echo "您沒(méi)有及格,請(qǐng)下次努力!"
;;
[1-5][0-9])
echo "您沒(méi)有及格,請(qǐng)下次努力!"
;;
[6-7][0-9])
echo "您的成績(jī)及格,請(qǐng)更加努力!"
;;
[8-9][0-9])
echo "您的成績(jī)?yōu)閮?yōu)秀,請(qǐng)?jiān)俳釉賲?"
;;
100)
echo "您的成績(jī)?yōu)閮?yōu)秀,請(qǐng)?jiān)俳釉賲?"
;;
*)
echo "您輸入的成績(jī)超出合理值,請(qǐng)重新輸入!"
;;
esac