if (条件式 == true) 文これが基本のif文です。
if (x == y)
System.out.println("xはyと等しい。");
これは、「x == y」が等しいなら「xはyと等しい。」と表示されるプログラムです。
まだ説明してませんでしたが、条件式を書いた場合は、boolean型の値が返されます。| 例 | 説明 |
|---|---|
| x == y | xとyが等しい場合はtrue、等しくない場合はfalseを返す |
| x != y | xとyが等しくない場合はtrue、等しい場合はfalseを返す |
| x > y | xがyよりも大きい場合はtrue、等しいか小さい場合はfalseを返す |
| x < y | xがyよりも小さい場合はtrue、等しいか大きい場合はfalseを返す |
| x >= y | xがyと等しいか大きい場合はtrue、小さい場合はfalseを返す |
| x <= y | xがyと等しいか小さい場合はtrue、大きい場合はfalseを返す |
if (x % 2 == 0 && x > y)
System.out.println("x = " + x);
プログラムの「x % 2 == 0」はxが0で割り切れるかを判断し、「x > y」はxがyより大きいかを判断していま
す。| 優先順位 | 演算子 | 意味 | 説明 | 結合規則 |
|---|---|---|---|---|
| 1 | && | 論理積演算子(AND) | 二つが共にtrueならtrueを返す、どちらか一方でもfalseならfalseを返す。 | 左 |
| 2 | || | 論理和演算子(OR) | 二つのどちらかがtrueならtrueを返す、両方ともfalseならfalseを返す。 |
| Sample3_1_1.java |
|---|
public class Sample3_1_1 {
public static void main(String[] args) {
new If().view();
}
}
class If {
void view() {
int x = 10, y = 20;
// == trueを省略できる
if (x == 10 == true)
System.out.println("x == 30");
if (y >= 20)
System.out.println("y >= 20");
// &&の場合と!!の場合を試してみる
if (x % 2 == 0 && x > y)
System.out.println("(AND):x = " + x);
if (x % 2 == 0 || x > y)
System.out.println("(OR):x = " + x);
int z = 0, answer = 0;
if (z > 0)
// zが0より大きければ
answer = y / z;
System.out.println("answer = " + answer);
}
}
|
x == 30 y >= 20 (OR):x = 10 answer = 0 |
if (条件) {
文
…
}
if (条件)
if (条件)
if (条件)
文
if (条件) {
if (条件) {
if (条件) {
文
}
}
}
どうですか、ブロックを使ったほうが見やすくありませんか。| Sample3_1_2.java |
|---|
public class Sample3_1_2 {
public static void main(String[] args) {
new Block().view();
}
}
class Block {
void view() {
int x = 10;
// ブロックを使う事により1つ以上分を書く事ができる。
if (x > 0) {
int y = 10 / x; // xは内側のブロックなためアクセスできる
System.out.println("y = " + y);
}
// y = 30; // yはブロックの範囲を超えている為、アクセスできない。コンパイルエラー
// if文のyはブロックの中だけ有効な為、yを使用する事ができる
int y = 30;
{
// このようなブロックの使い方もできる。
int z = y;
System.out.println("z = " + z);
}
// z = 10; // zはブロックの範囲を超えている為、アクセスできない。コンパイルエラー
}
}
|
y = 1 z = 30 |