2013-10-25 3 views
0

Я новичок с JavaScript, и у меня возникают некоторые проблемы, понять, почему этот код не выполняется:Возникли проблемы с «а» цикл в JavaScript

var weight; 

wight=parseInt(prompt("Please, enter weight"); 

while(weight>0); 

{ 
    if (weight>199 && weight<300); 
{ 

    document.write("Tax will be" + weight*5); 
} 

    else 
{ 

    document.write("Tax will be" + weight*10); 
} 
} 

Edit: Я сожалею, я неправильно записал некоторые «веса» при написании кода здесь. В любом случае, это не проблема. Когда я запускаю это в google chrome, он просто не запрашивает. И когда он подскажет, он не выполнит оператор «if».

+0

У вас есть точка с запятой после некоторого времени. Убери это. –

+1

Вы также чередуете «вес» и «свет». –

+1

Все ответы верны, и вы также можете найти себя, проверив консоль в firebug –

ответ

3
while (wight>0); 

Точка с запятой эффективно делает этот цикл: в то время как свет больше 0, ничего не делайте. Это заставляет бесконечный цикл, поэтому остальная часть вашего кода не выполняется.

Также, «wight» is не так же, как и «вес». Это еще одна ошибка.

Кроме того, если вы измените эту строку в while (weight > 0), вы все равно будете иметь бесконечный цикл, так как код, который затем выполняет не изменяет «веса» - таким образом, он будет всегда быть больше, чем 0 (если число в подсказке было введено менее 0, и в этом случае оно вообще не будет выполняться).

Что вы хотите:

var weight; 
weight=parseInt(prompt("Please, enter weight")); // Missing parenthesis 
// Those two lines can be combined: 
//var weight = parseInt(prompt("Please, enter weight")); 

while(weight>0) 
{ 
    if (weight>199 && weight<300)// REMOVE semicolon - has same effect - 'do nothing' 
    { 
     document.write("Tax will be" + weight*5); 
     // above string probably needs to have a space at the end: 
     // "Tax will be " - to avoid be5 (word smashed together with number) 
     // Same applies below 
    } 
    else 
    { 
     document.write("Tax will be" + weight*10); 
    } 
} 

Это синтаксически корректен. Вам все равно нужно либо изменить условие while, либо изменить «вес» в этом цикле, чтобы избежать бесконечного цикла.

+0

Также здесь отсутствует отсутствующая фигурная скобка: 'weight = parseInt (подсказка (« Пожалуйста, введите вес »);' должен быть 'weight = parseInt (подсказка (« Пожалуйста, введите вес »));' – brandonscript

+0

@ r3mus Только что поймал, что при редактировании. – Trojan

-1

правописания веса:

while (wight>0); 

while (weight>0); 

также в

document.write("Tax will be" + wight*10); 

document.write("Tax will be" + weight*10); 
-1

Попробуйте

var weight; 

weight=parseInt(prompt("Please, enter weight")); 

while (weight>0) 
{ 
    if (weight>199 && weight<300) 
{ 
    document.write("Tax will be" + weight*5); 
} 
    else 
{ 
    document.write("Tax will be" + weight*10); 
} 
} 
Смежные вопросы