私は範囲内の2つの数をランダムに選択し、その数から乗算の問題を尋ねるプログラムを作成しました。非常に厄介で繰り返し見えます。
私が助けたいのは、「私のコードをあまり反復的でわかりやすくする方法」です。ここに私のコードがあります... https://gist.github.com/anonymous/fa95b8493ef4d495f49a
ベストアンサー1
繰り返しを除去するためにループを使用できますfor
。バラよりhttps://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html
これが私が思いついたものです:
#!/bin/bash
read -p "Input the range you want to practice. For example: 1-12, 4-9, 9-11: " range
QUESTIONS=0
CORRECT=0
for i in {1..5}; do
let QUESTIONS++
n1=$(shuf -i $range -n 1)
n2=$(shuf -i $range -n 1)
realans=$((n1 * n2))
read -p "${n1} x ${n2}? " ans
if [[ $ans -eq $realans ]]; then
let CORRECT++
echo "Correct! ${n1} x ${n2} is ${realans}."
else
echo "Incorrect. ${n1} x ${n2} is ${realans}."
fi
done
echo "You got ${CORRECT} out of ${QUESTIONS} questions correct!"
read
簡単にするために、プログラムを簡素化し、zentity
入力と出力の両方を端末に保持することにしました。また、let var++
カウンターを増やすよりきれいで現代的な方法である使い方を実演しました。