数学復習計画[終了]

数学復習計画[終了]

私は範囲内の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++カウンターを増やすよりきれいで現代的な方法である使い方を実演しました。

おすすめ記事