JScript+WSHでプログラミング基礎100本ノック その27~その28 case文

その27 1行のif文

課題

何月かを数値で指定すると、その月に何日あるか(28日、30日、31日 ※うるう年は考慮しない)を例えば"10月は31日あります"とプロンプトに表示して下さい。

仕様

・変数 month に数値を入れ、値は10とすること
・変数 day に数値を入れ、月の日数を格納する
・if文を用いること

ヒント

・if文を1行で書くと下記のような文法となる。

if (条件式) 条件式が真(true)のときの処理;

コード例

main.js
--------

var month = 10;
var day;

if(month == 1) day = 31;
if(month == 2) day = 28;
if(month == 3) day = 31;
if(month == 4) day = 30;
if(month == 5) day = 31;
if(month == 6) day = 30;
if(month == 7) day = 31;
if(month == 8) day = 31;
if(month == 9) day = 30;
if(month == 10) day = 31;
if(month == 11) day = 30;
if(month == 12) day = 31;

WScript.echo(month + "月は" + day + "日まであります");

出力結果

10月は31日まであります
続行するには何かキーを押してください . . .

※monthを2や7など他の数字にして動作を試してみてください

解説

この書き方は個人的には見やすさはあると思いますが、あまり推奨されないと思います。
例えばmonth = 1のときに、最初のif文でdayが決定するのに、month == 2以降のコードも動いてしまうので動作が遅くなってしまうと思います。

その28 case文

課題

何月かを数値で指定すると、その月に何日あるか(28日、30日、31日 ※うるう年は考慮しない)を例えば"10月は31日あります"とプロンプトに表示して下さい。

仕様

・変数 month に数値を入れ、値は10とすること
・変数 day に数値を入れ、月の日数を格納する
・case文を用いること

ヒント

・case文は下記のような文法となる。

switch( 変数 ) {
    case1:
        変数==値1の場合の処理
        break;
    case2:
        変数==値2の場合の処理
        break;
    case3:
        変数==値3の場合の処理
        break;
    ...
    default:
        どの条件にも一致しない場合の処理
}

コード例

main.js
--------

var month = 10;
var day;

switch(month){
	case 1:
		day = 31;
		break;
	case 2:
		day = 28;
		break;
	case 3:
		day = 31;
		break;
	case 4:
		day = 30;
		break;
	case 5:
		day = 31;
		break;
	case 6:
		day = 30;
		break;
	case 7:
		day = 31;
		break;
	case 8:
		day = 31;
		break;
	case 9:
		day = 30;
		break;
	case 10:
		day = 31;
		break;
	case 11:
		day = 30;
		break;
	case 12:
		day = 31;
		break;
	default:
		WScript.echo("月の指定が誤っています");
}
WScript.echo(month + "月は" + day + "日まであります");

出力結果

10月は31日まであります
続行するには何かキーを押してください . . .

※monthを2や7、13など他の数字にして動作を試してみてください


この記事が気に入ったらサポートをしてみませんか?