4단계: CheckTheAnswer() 메서드 추가
이 자습서의 4단계에서는 수학 문제의 답이 맞는지 여부를 확인하는 CheckTheAnswer() 메서드를 작성합니다.이 항목은 기본 코딩 개념에 대해 설명하는 자습서 시리즈의 일부입니다.자습서에 대한 개요는 자습서 2: 시간이 지정된 수학 퀴즈 만들기를 참조하십시오.
[!참고]
이 메서드는 값을 반환하기 때문에 Visual Basic 사용자는 일반적인 Sub 키워드 대신 Function 키워드를 사용합니다.논리는 간단합니다. sub는 값을 반환하지 않고 function은 값을 반환합니다.
답이 맞는지 여부를 확인하려면
CheckTheAnswer() 메서드를 추가합니다.
이 메서드를 호출하면 addend1과 addend2의 값을 더하고 그 결과를 sum NumericUpDown 컨트롤의 값과 비교합니다.두 값이 서로 같으면 이 메서드는 true를 반환하고그렇지 않으면 false를 반환합니다.이 코드는 다음과 같습니다.
''' <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 이벤트 처리기에 대한 메서드에서 코드를 업데이트합니다.
if else 문에 다음 코드를 추가합니다.
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를 반환합니다.이벤트 처리기가 타이머를 중지하고 축하 메시지를 표시한 다음 시작 단추를 다시 사용할 수 있게 만듭니다.답이 맞지 않으면 퀴즈를 계속합니다.
프로그램을 저장하고 실행합니다. 퀴즈를 시작하고 더하기 문제의 올바른 답을 입력합니다.
[!참고]
이때 답 입력을 시작하기 전에 기본값인 0을 선택하거나 수동으로 삭제해야 합니다.이 동작은 이 자습서의 뒷부분에서 수정합니다.
올바른 답을 입력하면 메시지 상자가 열리고 시작 단추를 사용할 수 있게 되며 타이머가 중지됩니다.
계속하거나 검토하려면
다음 자습서 단계로 이동하려면 5단계: NumericUpDown 컨트롤에 대한 Enter 이벤트 처리기 추가를 참조하십시오.
이전 자습서 단계로 돌아가려면 3단계: 카운트다운 타이머 추가를 참조하십시오.