第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
数字の形式が正しくありません。
----------
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
数字の形式が正しくありません。
----------