0

ユーザーがプロンプトボックス内に数字を入力すると、月が出てくる割り当てがあります。これまでのコードは次のとおりです。

<script type="text/javascript">
var a = prompt("enter a month number please.");

var b = "";

    switch(a){
        case 1: b = "January";
            break;
        case 2: b = "February";
            break;
        case 3: b = "March";
            break;
        case 4: b = "April";
            break;
        case 5: b = "May";
            break;
        case 6: b = "June"; 
            break;
        case 7: b = "July";
            break;
        case 8: b = "August";
            break;
        case 9: b = "September";
            break;
        case 10: b = "October";
            break;
        case 11: b = "November";
            break;
        case 12: b = "December";
            break;
        }

if((a==12) || (a==1) || (a==2)){

    document.write(" It is " + a + ", which is in winter.")
}

if((a==3) || (a==4) || (a==5)){

    document.write(" It is " + a + ", which is in spring.")
}

if((a==6) || (a==7) || (a==8)){

    document.write(" It is " + a + ", which is in summer.")
}

if((a==9) || (a==10) || (a==11)){

    document.write(" It is " + a + ", which is in fall.")
}

</script>

私の月は出力ではありません。代わりに、数値は私の出力です。私の switch ステートメントは無視され、if ステートメントのみを実行しているようです。私は自分が間違っていることに迷っています。

4

6 に答える 6

8

文字列を含む変数ではなく、数値を含む変数を使用しています。b出力で使用します。

document.write(" It is " + b + ", which is in winter.");

次のようにコードを記述することもできます。

var a = parseInt(prompt("enter a month number please."), 10);
var month = [
  "January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
var b = month[a - 1];
var season;
switch (a) {
  case 12:
  case 1:
  case 2: season = "winter"; break;
  case 3:
  case 4:
  case 5: season = "spring"; break;
  case 6:
  case 7:
  case 8: season = "summer"; break;
  case 9:
  case 10:
  case 11: season = "fall"; break;
}
document.write(" It is " + b + ", which is in " + season + ".");

デモ: http://jsfiddle.net/Guffa/ZuXmP/

于 2012-12-06T22:52:14.790 に答える
2

baたとえば、月の文字列が含まれています

document.write(" It is " + b + ", which is in fall.")
于 2012-12-06T22:52:15.877 に答える
0

数学もかっこいいです:

var a = prompt("enter a month number please.");
var months = [
  "December", "January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November"
];
var seasons = ["winter", "spring", "summer", "fall"];
if (a == 12) a = 0;

document.write(" It is " + months[a] + ", which is in " + seasons[Math.floor(a/3)] + ".");​

または、次のように書くことができます。

var a = prompt("enter a month number please.") % 12; // december is now 0, each other month remains the same.
var months = [
  "December", "January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November"
];
var seasons = ["winter", "spring", "summer", "fall"];

document.write(" It is " + months[a] + ", which is in " + seasons[Math.floor(a/3)] + ".");​
于 2012-12-06T23:17:43.850 に答える
0

グッファの答えにコメントしてみましたが、ランキングが低いのでできません。user1725798これを試してください。プロンプトは文字列を返し、最初は数値と比較していました。文字列を解析する必要があります。

var a = parseInt(prompt("enter a month number please."));

if (!a) {
   return;
}

var month = [
  "January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
var b = month[a - 1];
var season;
switch (a) {
    case 12:
    case 1:
    case 2: season = "winter"; break;
    case 3:
    case 4:
    case 5: season = "spring"; break;
    case 6:
    case 7:
    case 8: season = "summer"; break;
    case 9:
    case 10:
    case 11: season = "fall"; break;
}
document.write(" It is " + b + ", which is in " + season + ".");
于 2012-12-06T23:57:59.190 に答える
0

はるかに効率的:

months = [["January",0],["February",0],["March",1]]; // Too tired to finish this array.
season = ["winter","spring","summer","fall"];

var a = prompt("Enter a month number please.");

if(!a.isNaN)
{
document.write(" It is " + months[a][0]  + ", which is in "+season[months[a][1]] +".")
}

レオン

于 2012-12-06T22:59:09.840 に答える
0

document.write(" It is " + a + ", which is in winter.")

ドキュメントで「b」の代わりに「a」を使用しました。

于 2012-12-06T22:52:59.763 に答える