| ■ if 命令の書き方 |
||||||||||||||||||||||||||||||||||||||||||||||||
if命令は、次のように記述します。
if (条件){
条件が満たされた場合の処理
}
else {
条件が満たされない場合の処理
}
例えば、「定価が1000円以上の商品は100円引きする。
それ以外の商品は50円引きする」という処理をしたい場合、次のように記述します。
if (定価>=1000){
定価=定価 - 100;
}
else {
定価=定価 - 50;
}
これは、次のように書いても同じことをします。
if (定価<1000){
定価=定価 - 50;
}
else {
定価=定価 - 100;
}
次のプログラムは、定価をキーボードから入力させ、もし2500円以上であれば300円
値引きし、それ以外の場合は100円引きとし、値引き後の価格を出力するプログラムです。
// 定価を入力し、値引き計算後、結果を表示する。
import java.io.*;
public class IfHantei1{
public static void main(String[] arges) throws IOException {
String teika_in;
int teika, nebikigo;
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.print("定価を入力して下さい。");
teika_in = kbd.readLine();
try{
teika = Integer.parseInt(teika_in);
if (teika >= 2500){
nebikigo = teika - 300;
}
else {
nebikigo = teika - 100;
}
System.out.println("値引き後の価格は、"+nebikigo+"円です。");
}
catch(NumberFormatException e){
System.out.println("数値を入力して下さい。");
continue;
}
break;
}
}
}
このプログラムを実行させると、次のように処理します。
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ■ if else 命令 | ||||||||||||||||||||||||||||||||||||||||||||||||
処理によっては、条件が1つだけとは限りません。もっと複雑な条件もあります。 例えば、「定価が2500円以上であれば300円値引きし、2500円未満で1000円以上であれば、200円値引きし、それ以外であれば100円値引きする。」という場合、条件は次の3つがあります。
if (1の条件) {
300円値引きする処理
}
else if (2の条件) {
200円値引きする処理
}
else {
100円値引きする処理
}
上記のように、
「もし1の条件であれば、300円値引きして、
もし2の条件であれば、200円値引きする、
それ以外であれば100円値引きする。」
と、else if 命令を使用して条件を複数個記述します。上記の書き方では、3の条件を記述していません。これは記述しても構いませんが、書かなくても"それ以外"に該当しますので同じように処理します。
上記の値引きをするプログラムを以下に示します。
これを実行すると次のようになります。
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ■ 条件式の書き方(関係演算子と論理演算子) | ||||||||||||||||||||||||||||||||||||||||||||||||
if命令では、条件を判断して処理の手順を変えることができます。 そこで、条件をどのように記述できるかが非常に重要になってきます。 if命令の条件は、次の2種類の演算子を使って条件を記述します。
|
||||||||||||||||||||||||||||||||||||||||||||||||
| ■ 論理演算子を使ったプログラム例 | ||||||||||||||||||||||||||||||||||||||||||||||||
次のプログラムは、以下の条件で値引き計算をし、結果を出力するプログラムです。
// 定価と性別を入力し、値引き計算後、結果を表示する。
import java.io.*;
public class IfHantei3{
public static void main(String[] arges) throws IOException {
String teika_in, sex_in;
int teika, nebikigo;
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.print("定価を入力して下さい。");
teika_in = kbd.readLine();
System.out.print("性別をfかmで入力して下さい。");
sex_in = kbd.readLine();
try{
teika = Integer.parseInt(teika_in);
if (teika >= 2500 && sex_in.equals("f")) {
nebikigo = teika - 500;
}
else if (teika >= 2500){
nebikigo = teika - 300;
}
else if (teika >=1000) {
nebikigo = teika - 200;
}
else {
nebikigo = teika - 100;
}
System.out.println("値引き後の価格は、"+nebikigo+"円です。");
}
catch(NumberFormatException e){
System.out.println("数値を入力して下さい。");
continue;
}
break;
}
}
}
上記プログラムの実行例を以下に示します。
[egi@taro prog]$ java IfHantei3 定価を入力して下さい。1000 性別をfかmで入力して下さい。f 値引き後の価格は、800円です。 [egi@taro prog]$ java IfHantei3 定価を入力して下さい。3000 性別をfかmで入力して下さい。f 値引き後の価格は、2500円です。 [egi@taro prog]$ java IfHantei3 定価を入力して下さい。2000 性別をfかmで入力して下さい。f 値引き後の価格は、1800円です。 [egi@taro prog]$ java IfHantei3 定価を入力して下さい。3000 性別をfかmで入力して下さい。m 値引き後の価格は、2700円です。 |
||||||||||||||||||||||||||||||||||||||||||||||||
|
|