JavaScript でif文の条件分岐・switch文を使った分岐

とりあえず先に解説

ちょっとむつかしくなってきた気配!....φ(・ω・` )

問1ー問3: if文による条件分岐

<script type="text/javascript">
var n;
s = prompt( "入れてもらうものを指定する日本語でおk" );
if ( 条件式 ) {
  条件式が真の場合の処理
}
else {
  条件式が偽の場合の処理
}
</script>

・問1はそのまんま、n > 0 かどうか。
・問2の n % 3 == 0とは、nが3の倍数かどうか判定するために、nを3で割ってみてます。割り切れたら3の倍数です。
=を一つだけしか書かないと代入演算になって等しいかどうかの判定にならないので注意!

true false
a > b a が b より大きい a が b 以下
a < b a が b より小さい a が b 以上
a >= b a が b 以上 a が b より小さい
a <= b a が b 以下 a が b より大きい
a == b a が b に等しい a が b に等しくない
a != b a が b に等しくない a が b に等しい

・問3もそのまんま。

問4ー問6: switch文による条件分岐

<script type="text/javascript">
var n;
s = prompt( "入れてもらうものを指定" );
switch( s ){
    case "a":
        aの場合の処理
        break;
    case "b":
        bの場合の処理
        break;
    ...
    ...
    default:    
        どのケースにもあたらない場合の処理
        break;
}

問7:else if による条件分岐

各企業の就活サイトでよく見たシステム。変なごあいさつをしてくれるやつは else if で書かれていたの巻

<head>
</head>
<body>
<script type="text/javascript">
   var n;
   n = prompt( "0から23の数を入力してください" );

if ( 0 <= n && n < 6 ) {
  document.write( "よい子は寝る時間ですよ〜.", "<br>" );
}
else if ( 6 <= n && n < 10 ) {
  document.write( "おはようございます,今日も一日がんばりましょう.", "<br>" );
}
else if ( 10 <= n && n < 18 ) {
  document.write( "こんにちは,調子はどうですか?", "<br>" );
}
else if ( 18 <= n &&  n < 24 ) {
  document.write( "こんばんは,そろそろ寝る準備開始.", "<br>" );
}
else { 
  document.write( "0から23の数を入力してください", "<br>" );
}
</script>
</body>

そんなで回答

<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
  <title>第三回課題</title>
</head>
<body>
<H1>第三回課題</H1>

<H4>問1</H4>
<p>nを読み込んで,nが正の数かどうか判定するプログラムを書きなさい.<br>
データの読み込みはprompt()を使います.</p>

<script type="text/javascript">
   var n;

   n = prompt( "数字を入力してください" );
   if ( n > 0 ) {
     document.write("nは正の数です.");
   }
   else {
     document.write("nは正の数ではありません.");
   }
</script>


<H4>問2</H4>
<p>nを読み込んで,nが3の倍数かどうか判定するプログラムを書きなさい.</p>

<script type="text/javascript">
   var n;

   n = prompt( "数字を入力してください" );
   if ( n % 3 == 0 ) {
     document.write("nは3の倍数です.");
   }
   else {
     document.write("nは3の倍数ではありません.");
   }
</script>


<H4>問3</H4>
<p>2つの数xとyを入力し、xがyで割り切れるかどうか答えるプログラムを書きなさい.</p>

<script type="text/javascript">
   var x,y;

   x = prompt( " x の値を入力してください" );
  y = prompt( " y の値を入力してください" );
   if ( x % y == 0 ) {
     document.write(" x は y で割り切れます.");
   }
   else {
     document.write(" x は y で割り切れません.");
   }
</script>


<H4>問4</H4>
<p>switch文を使った月の英語名を出力するプログラムを完成させなさい.</p>

<script type="text/javascript">
   var s;
   s = prompt( "1から12の数を入力してください" );

switch ( s ) {
    case "1":
       document.write( "january", "<br>" );
       break;

    case "2":
       document.write( "february", "<br>" );
       break;

    case "3":
       document.write( "march", "<br>" );
       break;

    case "4":
       document.write( "april", "<br>" );
       break;

    case "5":
       document.write( "may", "<br>" );
       break;

    case "6":
       document.write( "june", "<br>" );
       break;

    case "7":
       document.write( "july", "<br>" );
       break;

    case "8":
       document.write( "august", "<br>" );
       break;

    case "9":
       document.write( "september", "<br>" );
       break;

    case "10":
       document.write( "october", "<br>" );
       break;

    case "11":
       document.write( "november", "<br>" );
       break;

    case "12":
       document.write( "december", "<br>" );
       break;

  default:
       document.write( "1から12の数を入力してください" );
       break; 
}
</script>


<H4>問5</H4>
<p>上の問題のswitch文でbreak文を省略するとどのような動きをするか確かめなさい.<br>
<br>
入力した数字の月以降の月がすべて表示される。</p>


<H4>問6</H4>
<p>数字の0が入力されると「日曜日」,1が入力されると「月曜日」・・・のように表示されるプログラムを書きなさい.</p>

<script type="text/javascript">
   var s;
   s = prompt( "0から6の数を入力してください" );

switch ( s ) {
    case "0":
       document.write( "日曜日", "<br>" );
       break;

    case "1":
       document.write( "月曜日", "<br>" );
       break;

    case "2":
       document.write( "火曜日", "<br>" );
       break;

    case "3":
       document.write( "水曜日", "<br>" );
       break;

    case "4":
       document.write( "木曜日", "<br>" );
       break;

    case "5":
       document.write( "金曜日", "<br>" );
       break;

    case "6":
       document.write( "土曜日", "<br>" );
       break;

  default:
       document.write( "0から6の数を入力してください" );
       break;
}
</script>


<H4>問7</H4>
<p>入力値に応じて以下のようなメッセージを出力するプログラムを書きなさい.</p>

<script type="text/javascript">
   var n;
   n = prompt( "0から23の数を入力してください" );

if ( 0 <= n && n < 6 ) {
  document.write( "よい子は寝る時間ですよ〜.", "<br>" );
}
else if ( 6 <= n && n < 10 ) {
  document.write( "おはようございます,今日も一日がんばりましょう.", "<br>" );
}
else if ( 10 <= n && n < 18 ) {
  document.write( "こんにちは,調子はどうですか?", "<br>" );
}
else if ( 18 <= n &&  n < 24 ) {
  document.write( "こんばんは,そろそろ寝る準備開始.", "<br>" );
}
else { 
  document.write( "0から23の数を入力してください", "<br>" );
}
</script>
</body>
</html>

残った問題

えっと・・・えっとぉ・・・これからやる!ヽ(´ー`)ノ
・問題8
閏年の判定プログラムを完成させなさい.西暦の読み込みにはprompt()を使い,入力された西暦が閏年かどうか判定して結果をメッセージで表示します.

・問題9
西暦を入力し,その1年間は何時間か,また,何秒かを出力するプログラムを書きなさい.

・問題10
2つの数値を入力し,足し算,引き算,掛け算,割り算,余りを表示するプログラムを書きなさい.prompt()で2つの数値を入力しテーブルの形で出力するプログラムにしてみよう.足し算の結果が意図通りにならないことがあります.理由を考えなさい.