수학 복습 계획 [종료]

수학 복습 계획 [종료]

나는 범위에서 두 개의 숫자를 무작위로 선택하고 그 숫자에서 곱셈 문제를 묻는 프로그램을 만들었습니다. 매우 지저분하고 반복적으로 보입니다.

내가 도움을 원하는 것은 "내 코드를 덜 반복적이고 이해하기 쉽게 만드는 방법"입니다. 여기 내 코드가 있습니다... 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++카운터를 증가시키는 보다 깔끔하고 현대적인 방법인 사용법을 시연했습니다 .

관련 정보