切換
舊版
前往
大廳
主題

Java Programming Lesson 04

ジャネス | 2011-07-29 17:22:13 | 巴幣 0 | 人氣 351

第04章:if文

if文の構造

if ( 条件式 ) {
  条件が成り立つときの処理
}

条件式はBoolean型
その値はtrueかfalse

Java言語の比較演算子
Java言語 数学   意味
---- ---- ----------------------
p == 50  p = 50  pが50に等しいならtrue、それ以外ならfalse
p != 50  p ≠ 50  pが50に等しくないならtrue、それ以外ならfalse
p >= 50  p ≧ 50  pが50以上ならtrue、それ以外ならfalse
p <= 50  p ≦ 50  pが50以下ならtrue、それ以外ならfalse
p > 50  p > 50  pが50より大きいならtrue、それ以外ならfalse
p < 50  p < 50  pが50より小さいならtrue、それ以外ならfalse
---- ---- ----------------------

if-else文の構造

if ( 条件式 ) {
  条件が成り立つときの処理A
} else {
  条件が成り立たなかったときの処理B
}

Kasa1.java(傘プログラム1、if-else文、降水確率が50%以上なら傘を忘れずに)
----------
import java.io.*;

public class Kasa1 {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      System.out.println("降水確率は" + n + "%です。");
      if (n >= 50) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘はいりません。");
      }
      System.out.println("いってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Kasa1.java
java Kasa1

降水確率を入力してください。
70
降水確率は70%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
30
降水確率は30%です。
傘はいりません。
いってらっしゃい。
----------

Kasa1a.java(傘プログラム1a、降水確率が30%以上なら傘を忘れずに)
----------
import java.io.*;

public class Kasa1a {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      System.out.println("降水確率は" + n + "%です。");
      if (n >= 30) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘はいりません。");
      }
      System.out.println("いってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Kasa1.java
java Kasa1

降水確率を入力してください。
30
降水確率は30%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
50
降水確率は50%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
29
降水確率は29%です。
傘はいりません。
いってらっしゃい。
----------

if-else-if文の構造

if ( 条件式1 ) {
  条件式1を満たすとき
} else if ( 条件式2 ) {
  条件式1は満たさず、
  条件式2を満たすとき
} else {
  条件式1は満たさず、
  条件式2も満たさないとき
}

Kasa2.java(傘プログラム2、if-else-if文、入力検証を追加)
----------
import java.io.*;

public class Kasa2 {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      System.out.println("降水確率は" + n + "%です。");
      if (n > 100) {
     System.out.println("降水確率は 0 ~ 100 の間ですよ。");
      } else if (n >= 50) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘はいりません。");
      }
      System.out.println("いってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Kasa2.java
java Kasa2

降水確率を入力してください。
1200
降水確率は1200%です。
降水確率は 0 ~ 100 の間ですよ。
いってらっしゃい。

降水確率を入力してください。
50
降水確率は50%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
49
降水確率は49%です。
傘はいりません。
いってらっしゃい。
----------

Kasa2a.java(傘プログラム2a、if-else-if文、入力検証を追加、親切なメッセージを追加)
----------
import java.io.*;

public class Kasa2a {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      System.out.println("降水確率は" + n + "%です。");
      if (n > 100) {
     System.out.println("降水確率は 0 ~ 100 の間ですよ。" + n + "は大きすぎます。");
      } else if (n >= 50) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘はいりません。");
      }
      System.out.println("いってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Kasa2a.java
java Kasa2a

降水確率を入力してください。
1200
降水確率は1200%です。
降水確率は 0 ~ 100 の間ですよ。1200は大きすぎます。
いってらっしゃい。

降水確率を入力してください。
50
降水確率は50%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
49
降水確率は49%です。
傘はいりません。
いってらっしゃい。
----------

Kasa2a.java(傘プログラム2a、if-else-if文、入力検証を追加、親切なメッセージを追加)
----------
import java.io.*;

public class Kasa2a {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      System.out.println("降水確率は" + n + "%です。");
      if (n > 100) {
     System.out.println("降水確率は 0 ~ 100 の間ですよ。" + n + "は大きすぎます。");
      } else if (n >= 50) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘はいりません。");
      }
      System.out.println("いってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Kasa2a.java
java Kasa2a

降水確率を入力してください。
1200
降水確率は1200%です。
降水確率は 0 ~ 100 の間ですよ。1200は大きすぎます。
いってらっしゃい。

降水確率を入力してください。
50
降水確率は50%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
49
降水確率は49%です。
傘はいりません。
いってらっしゃい。
----------

論理演算子 ||
。| は「バーティカルライン」「パイプ」「オア」
。|| は「論理和」「ロジカル・オア(Logical Or)」「または」

Logical Or 条件式(または)
。条件式1と条件式2のすくなくともどちらか一方が成り立ったとき真

if ( 条件式1 || 条件式2 ) {
  処理A
} else {
  処理B
}

次のif文と同じ

if ( 条件式1 ) {
  処理A
} else if ( 条件式2 ) {
  処理A
} else {
  処理B
}
  
Kasa3.java(傘プログラム3、if-else-if文、入力検証を追加、Logical Or 条件式を追加)
----------
import java.io.*;

public class Kasa3 {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      System.out.println("降水確率は" + n + "%です。");
      if (n < 0 || n > 100) {
     System.out.println("降水確率は 0 ~ 100 の間ですよ。");
      } else if (n >= 50) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘はいりません。");
      }
      System.out.println("いってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Kasa3.java
java Kasa3

降水確率を入力してください。
-100
降水確率は-100%です。
降水確率は 0 ~ 100 の間ですよ。
いってらっしゃい。

降水確率を入力してください。
1200
降水確率は1200%です。
降水確率は 0 ~ 100 の間ですよ。
いってらっしゃい。

降水確率を入力してください。
50
降水確率は50%です。
傘を忘れずにね。
いってらっしゃい。

降水確率を入力してください。
49
降水確率は49%です。
傘はいりません。
いってらっしゃい。
----------

論理演算子 &&
。&& は「論理積」「ロジカル・アンド(Logical And)」「かつ」

Logical And 条件式(かつ)
。条件式1と条件式2の両方が成り立ったときのみ真

if ( 条件式1 && 条件式2 ) {
  処理A
} else {
  処理B
}

次のif文と同じ

if ( 条件式1 ) {
  if ( 条件式2 ) {
    処理A
  } else {
    処理B
  }
} else {
  処理B
}

真理値表
---- ---- ---------- -----------
条件式1 条件式2 条件式1かつ条件式2 条件式1または条件式2
---- ---- ---------- -----------
 ×    ×       ×          ×
 ×    ○       ×          ○
 ○    ×       ×          ○
 ○    ○       ○          ○
---- ---- ---------- -----------

学んだこと
。if文
。if...else文
。条件
。「または(||)」、「かつ(&&)」の演算子

練習問題4-1
           条件式 型    値
(1) n          ×  int    50
(2) n > 50       ○  boolean  false
(3) n >= 50       ○  boolean  true
(4) n > 50 || n == 50  ○  boolean  true
(5) n - 50       ×  int    0
(6) n - 50 > 0     ○  boolean  false

練習問題4-2

List 4-4 nが50のとき何が表示されますか

if (n > 50 || n == 50) {
  System.out.println("a");
} else {
  System.out.println("b");
}

考え
if (50 > 50 or 50 == 50) is true, then print a
if (50 > 50 or 50 == 50) is false, then print b
-> (false or true) is true -> print a

結果
a

List 4-5 nが50のとき何が表示されますか

if (n > 50) {
  System.out.println("A");
} else if (n < 50) {
  System.out.println("B");
} else {
  System.out.println("C");
}

考え
if (50 > 50) is true, then print A
if (50 < 50) is true, then print B
if (50 > 50) is false and (50 < 50) is false, then print C
-> (false and false) is false -> print c

練習問題4-3

Jikoku.java(時刻に応じるあいさつを表示するプログラム)
----------
import java.io.*;

public class Jikoku {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("現在の時刻(「時」だけでよい)を入力してください。");
     String line = reader.readLine();
     int n = Integer.parseInt(line);
     /** 午前中:00時から11時 */
     if (n >= 0 && n <= 11) {
       System.out.println("おはようございます");
     /** 正午 :12時 */
     } else if (n == 12) {
     System.out.println("お昼です");
     /** 午後 :13時から18時 */
     } else if (n >= 13 && n <= 18) {
     System.out.println("こんにちは");
     /** 夜  :19時から23時 */
     } else if (n >= 19 && n <= 23) {
     System.out.println("こんばんは");
     /** エラー:それ以外はエラー */
     } else {
     System.out.println("時刻の範囲を超えています");
     }
    } catch (IOException e) {
     System.out.println(e);
    } catch (NumberFormatException e) {
     System.out.println("数字の形式が正しくありません");
    }
  }
}
----------
画面に
javac Jikoku.java
java Jikoku

現在の時刻(「時」だけでよい)を入力してください。
9
おはようございます

現在の時刻(「時」だけでよい)を入力してください。
12
お昼です

現在の時刻(「時」だけでよい)を入力してください。
14
こんにちは

現在の時刻(「時」だけでよい)を入力してください。
20
こんばんは

現在の時刻(「時」だけでよい)を入力してください。
24
時刻の範囲を超えています

現在の時刻(「時」だけでよい)を入力してください。
1.5
数字の形式が正しくありません
----------

Greeting.java(あいさつのプログラム)
----------
import java.io.*;

public class Greeting {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("現在の時刻を入力してください(「時」のみでけっこうです)。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      if (0 <= n && n <= 11) {
        System.out.println("おはようございます");
      } else if (n == 12) {
        System.out.println("お昼です");
      } else if (13 <= n && n <= 18) {
        System.out.println("こんにちは");
      } else if (19 <= n && n <= 23) {
        System.out.println("こんばんは");
      } else {
        System.out.println("時刻の範囲を越えています");
      }
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Greeting.java
java Greeting

現在の時刻を入力してください(「時」のみでけっこうです)。
0
おはようございます

現在の時刻を入力してください(「時」のみでけっこうです)。
11
おはようございます

現在の時刻を入力してください(「時」のみでけっこうです)。
12
お昼です

現在の時刻を入力してください(「時」のみでけっこうです)。
13
こんにちは

現在の時刻を入力してください(「時」のみでけっこうです)。
18
こんにちは

現在の時刻を入力してください(「時」のみでけっこうです)。
19
こんばんは

現在の時刻を入力してください(「時」のみでけっこうです)。
23
こんばんは

現在の時刻を入力してください(「時」のみでけっこうです)。
24
時刻の範囲を越えています

現在の時刻を入力してください(「時」のみでけっこうです)。
-1
時刻の範囲を越えています

現在の時刻を入力してください(「時」のみでけっこうです)。
11:29
数字の形式が正しくありません。

現在の時刻を入力してください(「時」のみでけっこうです)。
abc
数字の形式が正しくありません。
----------

Greeting1.java(あいさつのプログラム、&&を使わない)
----------
import java.io.*;

public class Greeting {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("現在の時刻を入力してください(「時」のみでけっこうです)。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      if (0 <= n && n <= 11) {
        System.out.println("おはようございます");
      } else if (n == 12) {
        System.out.println("お昼です");
      } else if (13 <= n && n <= 18) {
        System.out.println("こんにちは");
      } else if (19 <= n && n <= 23) {
        System.out.println("こんばんは");
      } else {
        System.out.println("時刻の範囲を越えています");
      }
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    }
  }
}
----------
画面に
javac Greeting.java
java Greeting

現在の時刻を入力してください(「時」のみでけっこうです)。
0
おはようございます

現在の時刻を入力してください(「時」のみでけっこうです)。
11
おはようございます

現在の時刻を入力してください(「時」のみでけっこうです)。
12
お昼です

現在の時刻を入力してください(「時」のみでけっこうです)。
13
こんにちは

現在の時刻を入力してください(「時」のみでけっこうです)。
18
こんにちは

現在の時刻を入力してください(「時」のみでけっこうです)。
19
こんばんは

現在の時刻を入力してください(「時」のみでけっこうです)。
23
こんばんは

現在の時刻を入力してください(「時」のみでけっこうです)。
24
時刻の範囲を越えています

現在の時刻を入力してください(「時」のみでけっこうです)。
-1
時刻の範囲を越えています

現在の時刻を入力してください(「時」のみでけっこうです)。
11:29
数字の形式が正しくありません。

現在の時刻を入力してください(「時」のみでけっこうです)。
abc
数字の形式が正しくありません。
----------

創作回應

相關創作

更多創作