4단계: CheckTheAnswer() 메서드 추가Step 4: Add the CheckTheAnswer() Method

이 자습서의 4단계에서는 수학 문제의 답이 맞는지 여부를 확인하는 CheckTheAnswer() 메서드를 작성합니다.In the fourth part of this tutorial, you'll write a method, CheckTheAnswer(), that determines whether the answers to the math problems are correct. 이 항목은 기본 코딩 개념에 대해 설명하는 자습서 시리즈의 일부입니다.This topic is part of a tutorial series about basic coding concepts. 자습서에 대한 개요는 자습서 2: 시간이 지정된 수학 퀴즈 만들기를 참조하세요.For an overview of the tutorial, see Tutorial 2: Create a Timed Math Quiz.

참고

이 메서드는 값을 반환하기 때문에 Visual Basic 사용자는 일반적인 Function 키워드 대신 Sub 키워드를 사용합니다.If you're following along in Visual Basic, you'll use the Function keyword instead of the usual Sub keyword because this method returns a value. 논리는 간단합니다. sub는 값을 반환하지 않고 function은 값을 반환합니다.It's really that simple: a sub doesn't return a value, but a function does.

답이 맞는지 여부를 확인하려면To verify whether the answers are correct

  1. CheckTheAnswer() 메서드를 추가합니다.Add the CheckTheAnswer() method.

    이 메서드를 호출하면 addend1과 addend2의 값을 더하고 그 결과를 sum NumericUpDown 컨트롤의 값과 비교합니다.When this method is called, it adds the values of addend1 and addend2 and compares the result to the value in the sum NumericUpDown control. 두 값이 서로 같으면 이 메서드는 true를 반환하고If the values are equal, the method returns a value of true. 그렇지 않으면 false를 반환합니다.Otherwise, the method returns a value of false. 이 코드는 다음과 같습니다.Your code should look like the following.

    ''' <summary>
    ''' Check the answer to see if the user got everything right.
    ''' </summary>
    ''' <returns>True if the answer's correct, false otherwise.</returns>
    ''' <remarks></remarks>
    Public Function CheckTheAnswer() As Boolean
    
        If addend1 + addend2 = sum.Value Then
            Return True
        Else
            Return False
        End If
    
    End Function
    
    /// <summary>
    /// Check the answer to see if the user got everything right.
    /// </summary>
    /// <returns>True if the answer's correct, false otherwise.</returns>
    private bool CheckTheAnswer()
    {
        if (addend1 + addend2 == sum.Value)
            return true;
        else
            return false;
    }
    

    다음으로 새 CheckTheAnswer() 메서드를 호출하도록 타이머의 Tick 이벤트 처리기에 대한 메서드에서 코드를 업데이트합니다.Next, you'll check the answer by updating the code in the method for the timer's Tick event handler to call the new CheckTheAnswer() method.

  2. if else 문에 다음 코드를 추가합니다.Add the following code to the if else statement.

    Private Sub Timer1_Tick() Handles Timer1.Tick
    
        If CheckTheAnswer() Then
            ' If CheckTheAnswer() returns true, then the user 
            ' got the answer right. Stop the timer  
            ' and show a MessageBox.
            Timer1.Stop()
            MessageBox.Show("You got all of the answers right!", "Congratulations!")
            startButton.Enabled = True
        ElseIf timeLeft > 0 Then
            ' If CheckTheAnswer() return false, keep counting
            ' down. Decrease the time left by one second and 
            ' display the new time left by updating the 
            ' Time Left label.
            timeLeft -= 1
            timeLabel.Text = timeLeft & " seconds"
        Else
            ' If the user ran out of time, stop the timer, show 
            ' a MessageBox, and fill in the answers.
            Timer1.Stop()
            timeLabel.Text = "Time's up!"
            MessageBox.Show("You didn't finish in time.", "Sorry!")
            sum.Value = addend1 + addend2
            startButton.Enabled = True
        End If
    
    End Sub
    
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (CheckTheAnswer())
        {
            // If CheckTheAnswer() returns true, then the user 
            // got the answer right. Stop the timer  
            // and show a MessageBox.
            timer1.Stop();
            MessageBox.Show("You got all the answers right!",
                            "Congratulations!");
            startButton.Enabled = true;
        }
        else if (timeLeft > 0)
        {
           // If CheckTheAnswer() return false, keep counting
           // down. Decrease the time left by one second and 
           // display the new time left by updating the 
           // Time Left label.
           timeLeft--;
            timeLabel.Text = timeLeft + " seconds";
        }
        else
        {
            // If the user ran out of time, stop the timer, show 
            // a MessageBox, and fill in the answers.
            timer1.Stop();
            timeLabel.Text = "Time's up!";
            MessageBox.Show("You didn't finish in time.", "Sorry!");
            sum.Value = addend1 + addend2;
            startButton.Enabled = true;
        }
    }
    

    답이 맞으면 CheckTheAnswer()true를 반환합니다.If the answer is correct, CheckTheAnswer() returns true. 이벤트 처리기가 타이머를 중지하고 축하 메시지를 표시한 다음 시작 단추를 다시 사용할 수 있게 만듭니다.The event handler stops the timer, shows a congratulatory message, and then makes the Start button available again. 답이 맞지 않으면 퀴즈를 계속합니다.Otherwise, the quiz continues.

  3. 프로그램을 저장하고 실행합니다. 퀴즈를 시작하고 더하기 문제의 올바른 답을 입력합니다.Save your program, run it, start a quiz, and provide a correct answer to the addition problem.

    참고

    이때 답 입력을 시작하기 전에 기본값인 0을 선택하거나 수동으로 삭제해야 합니다.When you enter your answer, you must either select the default value before you start to enter your answer, or you must delete the zero manually. 이 동작은 이 자습서의 뒷부분에서 수정합니다.You'll correct this behavior later in this tutorial.

    올바른 답을 입력하면 메시지 상자가 열리고 시작 단추를 사용할 수 있게 되며 타이머가 중지됩니다.When you provide a correct answer, a message box opens, the Start button becomes available, and the timer stops.

계속하거나 검토하려면To continue or review