Как я могу посчитать, сколько раз был выполнен расчет - PullRequest
2 голосов
/ 10 июня 2019

Я создаю программу, которая принимает два входа, текущий вес и целевой вес. В зависимости от входных данных, он отображает различные выходные данные, например, текущий: 87 и целевой 64, с 1,38 как сумма потерь в неделю, я хочу, чтобы он вычислял, сколько раз сумма запускается, пока не достигнет текущей <= target </p>

Я пытался создавать циклы, но у меня недостаточно навыков, чтобы полностью понять, как работает цикл.

//Declare basic variables, prompt asks for input from user.
var current = prompt("Please enter your current weight");
var target = prompt("Please enter your target weight");
var weeks = 0; 
var loss = (current - target);
// If 0 is entered by user then the input text will display
if (current <= 0){
    document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
}
// If 0 is entered by user then the input text will display
else if (target <= 0){
    document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
}
else if (target >= current){
    document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
}
// Calculate the weeks it takes to lose weight
else if (current > target){
    loss = (target - current);
    weeks = loss / 1.38;
    document.write(weeks.toFixed(0)); // Displays answer
}

Я хочу, чтобы ожидаемый результат current = 87 и target = 64 был "17 недель".

Ответы [ 3 ]

0 голосов
/ 10 июня 2019

Я не знаю об общей правильности вашего кода, но если бы я просто изменил его, чтобы повторять его снова и снова, пока у вас не будет действительного результата, и посчитайте это, я бы сделал это:

var finished = false;
var count = 0;


while (!finished) {
    count++;
    //Declare basic variables, prompt asks for input from user.
    var current = prompt("Please enter your current weight");
    var target = prompt("Please enter your target weight");
    var weeks = 0; 
    var loss = (current - target);

    // If 0 is entered by user then the input text will display
    if (current <= 0){
       document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
    }
    // If 0 is entered by user then the input text will display
    else if (target <= 0){
       document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
    }
    else if (target >= current){
       document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
    }
    // Calculate the weeks it takes to lose weight
    else if (current > target){
        finished = true;
        loss = (target - current);
        weeks = loss / 1.38;
        document.write(weeks.toFixed(0)); // Displays answer
    }
}

Используйте переменную finished, чтобы отследить, следует ли вам снова запускать цикл, а переменная count увеличивается при каждом прохождении цикла. Установите finished в true, когда вы получите результат, которым вы довольны.

0 голосов
/ 10 июня 2019
function looseWeightEstimator() {
    let weeksToAchieve, currentWeight, targetWeight;
    weeksToAchieve = 0;
    currentWeight = prompt("Please enter your current weight");
    targetWeight = prompt("Please enter your target weight");



    for (let i = 0; currentWeight > targetWeight; i++) {
        weeksToAchieve = weeksToAchieve + 1
        currentWeight = currentWeight - 1.38;
    }
    alert(`It will take ${weeksToAchieve} weeks to achieve your target weight`);


}

looseWeightEstimator()
0 голосов
/ 10 июня 2019

Сначала вам нужно заменить строку, чтобы избежать отрицательного результата:

loss = (target - current);

на:

loss = (current - target);

Во-вторых, вы добавляете «недели» к своему выводу:

document.write(weeks.toFixed(0) + ' weeks');

//Declare basic variables, prompt asks for input from user.
var current = prompt("Please enter your current weight");
var target = prompt("Please enter your target weight");
var weeks = 0; 
var loss = (current - target);
// If 0 is entered by user then the input text will display
if (current <= 0){
document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
}
// If 0 is entered by user then the input text will display
else if (target <= 0){
document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
}
else if (target >= current){
document.write("Invalid input, please enter greater than 0 kg"); // Displays answer
}
// Calculate the weeks it takes to lose weight
else if (current > target){
loss = (current - target);
weeks = loss / 1.38;
document.write(weeks.toFixed(0) + ' weeks'); // Displays answer
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...