Я немного не в себе в отношении моего псевдокода для задания, над которым я работаю. Он был отмечен неверно, говоря, что мне нужно добавить цикл проверки (что, как я думал, я сделал). Я новичок в программировании, так как у меня опыт работы в ИТ-поддержке. Любая помощь, объясняющая мне, как добавить проверку цикла в мой Псевдо, была бы очень признательна, поскольку Псевдо на самом деле не преподается в этом курсе, и я немного потерялся, если честно.


//PSEUDOCODE FOR assignment1.js
//input
/*
ONCLICK.PROMPT
FUNCTION
WINDOW.PROMPT
VAR CHOICE("Which website would you like?")
WHILE true
       SWITCH (CHOICE CASE 1 - 3)
       BREAK;
ELSE alert ("please enter a valid number")
       RETURN TO FUNCTION
*/

Фактический скрипт JS (связанный с HTML).

function pressButton(){
    var myElement= document.getElementById("websites");
    var choice = parseInt(prompt("Which website would you like?\n 1:Google \n 2:Yahoo \n 3:Bing \n","" ));

while (choice<0 || choice>3){
            alert("please enter a valid number");

    var choice = parseInt(prompt("Which website would you like?\n 1:Google \n 2:Yahoo \n 3:Bing \n","" ));
        

switch (choice) {
    case 1:
    window.open("https://www.google.com",'_blank', height=800, width=800);
    break;

    case 2:
    window.open("https://au.yahoo.com","_blank", height=800, width=800);
    break;

    case 3:
    window.open("https://bing.com","_blank", height=800, width=800);
    break;

    default:
    text = "error: please choose from the options above";

}
}
}
0
RyC 18 Мар 2021 в 07:18

2 ответа

Лучший ответ

Лучший способ следовать псевдокоду - использовать настоящий код. Что касается вашей проблемы, цикл выполняет проверку. Вне цикла (после него) - это когда был сделан правильный выбор. В настоящее время ваш переключатель находится внутри цикла проверки, что означает, что он будет работать, когда значение выбора недействительно. Это соответствует вашему псевдокоду, но, к сожалению, ваш псевдокод неверен. Это жесткий баланс: удерживать псевдокод достаточно маленьким, чтобы соответствовать тому, как компьютер выполняет вычисления, и не допускать попадания реального кода в псевдотекст. Вот как бы я это изменил.

// ONCLICK
// GET CHOICE
// WHILE CHOICE INVALID
   // ALERT OF INVALID CHOICE
   // GET CHOICE AGAIN
// OPEN CHOICE
// END FUNCTION

Другие советы. Ваш переключатель не нуждается в настройках по умолчанию, если не может быть сделан неверный выбор. Ваша проверка не должна включать 0. Это также отличный сценарий для do ... while (хотя это предупреждение становится неудобным сценарием).

// ONCLICK
function pressButton(){
    var myElement= document.getElementById("websites");
    // GET CHOICE
    var choice = parseInt(prompt("Which website would you like?\n 1:Google \n 2:Yahoo \n 3:Bing \n","" ));

    // VAR CHOICE("Which website would you like?")
    // WHILE invalid
    while (choice <= 0 || choice > 3) {
        // ALERT OF INVALID CHOICE
        alert("please enter a valid number");
        // GET CHOICE AGAIN
        var choice = parseInt(prompt("Which website would you like?\n 1:Google \n 2:Yahoo \n 3:Bing \n","" ));
    }
        
    // OPEN CHOICE
    switch (choice) {
        case 1:
        window.open("https://www.google.com",'_blank', height=800, width=800);
        break;

        case 2:
        window.open("https://au.yahoo.com","_blank", height=800, width=800);
        break;

        case 3:
        window.open("https://bing.com","_blank", height=800, width=800);
        break;
    }

    // END FUNCTION
}
2
Spidy 18 Мар 2021 в 04:33

Вы не должны запускать оператор switch, если значение choice выходит за пределы диапазона. В вашем коде есть ошибка, из-за которой сообщение будет напечатано только один раз, а затем переданы неверные значения choice оператору switch.

function pressButton(){
    var myElement= document.getElementById("websites");
    var choice = parseInt(prompt("Which website would you like?\n 1:Google \n 2:Yahoo \n 3:Bing \n","" ));

    while (choice<0 || choice>3) {
        alert("please enter a valid number");
        choice = parseInt(prompt("Which website would you like?\n 1:Google \n 2:Yahoo \n 3:Bing \n","" ));
    }
    

    switch (choice) {
        case 1:
            window.open("https://www.google.com",'_blank', height=800, width=800);
        break;

        case 2:
            window.open("https://au.yahoo.com","_blank", height=800, width=800);
        break;

        case 3:
            window.open("https://bing.com","_blank", height=800, width=800);
        break;

    }
 }

Приведенный выше код будет продолжать просить пользователя ввести число, пока пользователь не введет правильный ввод. Кроме того, вам не нужен регистр по умолчанию, потому что цикл while гарантирует, что в блок переключателя будет передано только правильное значение.

0
Ezio 18 Мар 2021 в 04:28