2014-03-03 4 views
0

어머니는 선생님이며, 나는 그녀에게 무작위 학생 피커 (2 학년)로 만들기로 결정했습니다. 내 문제는 그것이 한 학생을 돌려 보내는 것입니다. 다니엘. 임의의 숫자가 반환되는 것을 콘솔에 기록하도록 설정하고 난수가 1이 아니더라도 항상 다니엘을 반환합니다. 간단한 작업만으로 생각했습니다. 배경 정보 - 26 명의 학생이 있으며, 덴버 (이상한 이름을 가진 많은 인구)에서 가르칩니다.Randomizer는 항상 첫 번째 값을 반환합니다.

function studPick() { 
    var random = Math.random() * 100/3.84615384615 

    var rand = Math.ceil(random * 1)/1; 
    console.log("rand = " + rand + "."); 
    if (rand = 1) { 
    var student = "Daniel"; 
    } 
    else if (rand = 2) { 
    var student = "Judge"; 
    } 
    else if (rand = 3) 
    { 
    var student = "Jonathan"; 
    } 
    else if (rand = 4) { 
    var student = "John"; 
    } 
    else if (rand = 5) { 
    var student = "Amethyst"; 
    } 
    else if (rand = 6) { 
    var student = "Noah"; 
    } 
    else if (rand = 7) { 
    var student = "Antonio"; 
    } 
    else if (rand = 8) { 
    var student = "Ramon"; 
    } 
    else if (rand = 9) { 
    var student = "Aidan"; 
    } 
    else if (rand = 10) { 
    var student = "Manuel"; 
    } 
    else if (rand = 11) { 
    var student = "Ingrid"; 
    } 
    else if (rand = 12) { 
    var student = "Anastasia"; 
    } 
    else if (rand = 13) { 
    var student = "Annabella"; 
    } 
    else if (rand = 14) { 
    var student = "Christella"; 
    } 
    else if (rand = 15) { 
    var student = "La'Kym"; 
    } 
    else if (rand = 16) { 
    var student = "Isabella"; 
    } 
    else if (rand = 17) { 
    var student = "Hadiyah"; 
    } 
    else if (rand = 18) { 
    var student = "Jersey S"; 
    } 
    else if (rand = 19) { 
    var student = "Aviana"; 
    } 
    else if (rand = 20) { 
    var student = "Zion"; 
    } 
    else if (rand = 21) { 
    var student = "Carlos"; 
    } 
    else if (rand = 22) { 
    var student = "Loren"; 
    } 
    else if (rand = 23) { 
    var student = "Irie"; 
    } 
    else if (rand = 24) { 
    var student = "Trinidad" 
    } 
    else if (rand = 25) { 
    var student = "Jersey W" 
    } 
    else if (rand = 26) { 
    var student = "Stella" 
    } 
    else { 
    alert("An error has occured"); 
    } 
    alert("Randomly picked student: " + student + ".") 
} 

편집 : 내 문제는 이미 정의 된 변수를 다시 정의하는 것입니다. 나는 그것을 점검 할 것이고, 그것이 해결책이라면 내 질문을 삭제할 것이다.

+3

처음에는 js man을 배워야한다고 생각합니다 – Krab

+0

크랩 ... JS에 대한 배경 지식없이 이것을 만들었다 고 생각합니까? * 한숨 * – redacted

+0

은 switch 문을 사용해야합니다. – Mouseroot

답변

6

귀하의 # 1 실수는 ==을 의미하는 =을 작성하고 있습니다. rand = 8은 "rand의 값이 1"임을 의미합니다. rand == 8을 원하지만 "rand8과 같습니까?"

배열을 사용하면 프로그램이 훨씬 쉽고 짧아집니다.

var students = ["Daniel", "Judge", "Jonathan"]; 
var randomStudentIndex = Math.floor(Math.random() * students.length); 
var student = students[randomStudentIndex]; 

(여기에 중요하지 않다 ===을 가진 자바 스크립트의 추가 특질이있다, 그러나 나중에, 그래서 나중에 차이를 배울해야 속담 엉덩이에서 당신을 물지 수 있습니다. 그것은 실제로 더 나은 것 ==을 사용해야하는 이유를 알기 전까지는 ===이 아닌 ==으로 테스트하십시오.

관련 문제