2016-12-19 6 views
0

6 가지 질문 만 포함하여 JavaScript로 기본 IQ 테스트를 작성하려고합니다.팝업 창의 점수를 백분율로 변경하는 방법은 무엇입니까?

질문을 올리거나 제출 한 후 자동 팝업 창에서 점수가 6 점이됩니다. 그러나 정답 수를 기준으로 백분율을 표시하고 싶습니다. 나는 무엇을 시도했다

은 여기 (당신은 내 문제는 아마 변수에 있음을 볼 수 있습니다) :

function calculate() 
{ 
    var x, y, score; 
    y; 

    x = document.personalinfo.firstname.value; 

    score = (y*100)/6; 
    window.alert("Hey " + x + ", your score is: " + score); 

    if(document.IQTest.Q1[0,1,3,4].checked == true) 
     score++; 

    if(document.IQTest.Q2[2].checked == true) 
     score++; 

    if(document.IQTest.Q3[1].checked == true) 
     score++; 

    if(document.IQTest.Q4[3].checked == true) 
     score++; 

    if(document.IQTest.Q5[2].checked == true) 
     score++; 

    if(document.IQTest.Q6[0,2,4].checked == true) 
     score++; 
} 
+1

'score/6 * 100'? –

+0

답변을 확인하기 전에 왜 점수를 표시하고 있습니까? 그리고'y '는 어디에서 설정합니까? – Barmar

+1

'document.IQTest.Q1 [0,1,3,4] .checked == true'는 무엇을 의미합니까? 참고로, document.IQTest.Q1 [4] .checked == true'와 동일합니다 - 자바 스크립트 [쉼표 연산자] (https://developer.mozilla.org/en-US/docs/Web/JavaScript)에 대해 읽으십시오./Reference/Operators/Comma_Operator) – Barmar

답변

0

그것은 코드가 조금 순서가 그리고 당신은 두 개의 변수를 혼합 단지입니다.

function calculate() { 
var x, y, score; 

score = 0; 
x = document.personalinfo.firstname.value; 

if(document.IQTest.Q1[0,1,3,4].checked == true) score++; 
if(document.IQTest.Q2[2].checked == true) score++; 
if(document.IQTest.Q3[1].checked == true) score++; 
if(document.IQTest.Q4[3].checked == true) score++; 
if(document.IQTest.Q5[2].checked == true) score++; 
if(document.IQTest.Q6[0,2,4].checked == true) score++; 

y = (score*100)/6; 

window.alert("Hey " + x + ", your score is: " + y); 
} 
+0

참고로 코드의 명확성을 위해'(score * 100)/6'을'(score/6) * 100'으로 다시 작성합니다. '== true' 또한 조건문에서 중복됩니다 (제거 할 수 있습니다). –

+1

부수적으로, 나중에 버그를 피하기 위해'{'와'}'에'if' 문의 브랜치를 묶을 것입니다. –

+0

@ MarionX.Koumoutopoulou'score'를 초기화할까요? (업데이트 된 답변보기) –