6

私がやりたいことはかなり簡単です:

  • 入力が の場合、0数字が入力されていないことを意味し、そのように表示されます。
  • 入力が の場合、正解で7あると表示されます。
  • それ以外の場合は、間違っていることがわかります。

しかし、入力が何であれ、「7は正しい」という行を出力するだけで、何が間違っているのかわかりません。

<script type="text/javascript">
function problem2 ()
{
var number = 0;
var text=document.getElementById("output");
number = prompt("Enter a number between 1 and 10 please" , 0);
if (number = 0)
    {
     text.value = "You didn't enter a number!";
    }
if (number = 7)
    {
     text.value = "7 is correct!";
    }
else
    {
     text.value = "Sorry, ", input, "is not correct!";
    }
}
</script>
<input type="button" value="Click here" onclick="problem2()">
<input id="output" type="text">
4

3 に答える 3

6

で割り当ててい=ます。==またはを使用し===ます。

if( 0 == number ){

  text.value = "You didn't enter a number!";
}

また、ブレースの配置にも注意してください。Javascript は、行末にセミコロンを自動的に追加するのが好きです。ソース

于 2012-12-13T01:09:50.083 に答える
3

これはいくつかの修正と改善を含むコードです (私が変更したものをコメントしました):

function problem2 (){
    //I multiplied by * 1 to work with numbers, also used || to default to 0 in case of NaN
    var num = (prompt("Enter a number between 1 and 10 please" , 0) * 1) || 0;
    var msg = "";

    if (!num){ //I prefer this over 'num == 0'
         msg = "You didn't enter a number!";
    //you should use 'else if' in this case
    }else if (num == 7){//'=' is for assignment, use '==' or '===' instead
         msg = "7 is correct!";
    }else{
        //you had an undefined var 'input', you probably meant 'num'
        //you also were connecting var and strings using commas, use '+' instead
         msg = "Sorry, " + num + " is not correct!"; //added a space in ' is'
    }

    //no need to store the element in a var anymore :D
    document.getElementById("output").value = msg;
}

さらに、さらに 2 つの変更を加えることができます。

  • 1 つだけvar(例var something = "", somethingElse = 99;)
  • 最初からデフォルトのテキストを割り当て、同様var msg = "default"に削除しますelse

注:私が行った文書化されていない変更は、いくつかの var の名前を変更することでした。私は皆さんに のような var の使用をやめることをお勧めしnumber, text, stringます。この悪い習慣がある場合、最終的には誤って違法な var 名を使用することになります。

于 2012-12-13T01:19:35.597 に答える
3

比較演算子の代わりに代入演算子を条件として使用しています。

if (number = 0) // falsy. Same as if (false)
    {
     text.value = "You didn't enter a number!";
    }
if (number = 7) // truthy. Same as if (true)
    {
     text.value = "7 is correct!";
    }
else
    {
     text.value = "Sorry, ", input, "is not correct!";
    }

または、スイッチを使用して、条件を少し簡単に整理することもできます。

switch (number) {
    case 0: 
        text.value = "You didn't enter a number!";
        break;

    case 7:
        text.value = "7 is correct!";
        break;

    default:
        text.value = "Sorry, ", input, "is not correct!";
        break;
}
于 2012-12-13T01:12:15.627 に答える