2015-10-10 3 views
0

Это просто простая программа умножения с использованием , если/ else и для цикла. Повторно введите положительное число из приглашения и присвоите его переменной num, которую должен использовать цикл цикла , - это нарушение программы. Я не знаю, почему это неверно. ? Возможно, вы могли бы сказать мне лучший способ сделать это, используя , если/ еще и для цикла. Любая помощь очень ценится.Использование for loop after if/else statement

//Array variable and counter variable 

var multi = new Array(); 

var Counter; 

//Enter a number between 1 and 12 and hold in num variable 

num = prompt("Enter a number between 1 and 12"); 

//Check if number is less than zero 
//Reenter positive number 

if (num < 0) { 
    var num = prompt("Enter a number greater than zero"); 
} 
else { 
    //Number entered by user multiplied by counter value 
    for (Counter = 1; Counter <= 12; Counter++) { 
     multi[Counter] = num * Counter; 
    } 
    //Loop to display number that is being multiplied each time 
    for (Counter = 1; Counter <= 12; Counter++) { 
     document.write(Counter + " x " + num + " = " + multi[Counter] + '<br/>'); 
    } 
} 
+0

Это должно быть 'var num' вместо' num', а затем 'num' вместо' var num'. – Xufox

+0

И 'document.write' перезаписывает документ – adeneo

+0

, почему вы используете две линии диффеирования, которые вы умножаете и отображаете в одном для цикла справа? – Webruster

ответ

1

Это может быть упрощено одновременно с фиксацией кода.

Причина, по которой вводить отрицательное число, приводит к сбою кода, потому что вы никогда не попадете в блок else и поэтому никогда не запускаете в нем намеченный код.

Как предложено melpomene, цикл do/while будет служить вам хорошо здесь.

Вам также не нужны 2 отдельные петли for, они могут быть сконденсированы в один.

var num; 

do { 

    // Enter a number between 1 and 12 and hold in num variable 
    // Check if number is not between 1 and 12 and re-enter 
    num = prompt("Enter a number between 1 and 12"); 

} while (num < 1 || num > 12); 

// You can define your counter variable within the for loop 
for (var counter = 1; counter <= 12; counter++) { 

    document.write(counter + ' x ' + num + ' = ' + (num * counter) + '<br/>') 

} 
+0

Большое спасибо Джошу. Я не понимал, что никогда не ударяю по другому блоку. Я потратил много времени на это, ловушки того, чтобы быть новым программистом. –

+0

Нет проблем - держитесь! – joshfarrant