Java:if文だけで閏年判定&偶数/奇数判定 [勉強]
昨日(08/06)で、職業訓練3週間が終わりました。1日の欠席、1~2時間の遅刻だけで、なんとか済みました。
演習問題というか、「~できるプログラムを書け」とかいうのが、教科書の各章毎に用意されていて各章の復習にとJava javaしました。
まずは、if文だけで入力された年(西暦)が閏年か否かの判定をするソースです。
以下、閏年判定ソースです。
import java.io.*;
public class LeapYear {
public static void main(String args[]) {
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
try {
int year = Integer.parseInt(args[0]);
//閏年判定の分岐
if ((year % 4 == 0) && (year % 100 != 0 || year % 400 == 0)) {
System.out.println("閏年です。");
} else {
System.out.println("閏年ではありません。");
}
} catch (NumberFormatException e) {
System.out.println("正しい数値を入力してください。");
}
}
}
閏年は、4で割り切れる年だけど100で割り切れる年は閏年ではない。しかし、400で割り切れる場合は閏年。というややこしい判定基準なんですよね。
これをif文の条件式に当てはめるのに、かなり考えました。
if ((year % 4 == 0) && (year % 100 != 0 || year % 400 == 0))
%は、year(入力された年)を4で割った余りを求める演算子で、余りが0=割り切れたということで、閏年とする。&&は論理演算子?で、前の条件かつ後ろの条件が満たされている(true)かどうかを判定します。ここだと4で割り切れるけど100で割り切れない、となります。
さらに||という演算子はorみたいなもので「または」という感じですね。
最終的には「4で割り切れる かつ100で割り切れない、または400で割り切れる」という条件を表したのが上記if文です。
ここのif文の条件式に辿り着くのが大変でした。全部||にしてしまっていたり、全部&&にしてしまったり・・・・・・。)^-^;
で、次はif文で入力された数字(整数)が偶数か奇数かの判定をするソースです。
import java.io.*;
public class EvenOrOdd {
public static void main(String args[]) {
BufferedReader kbd = new BufferedReader (new InputStreamReader(System.in));
//数値入力待ち
try {
System.out.print("数値(整数)を入力してください");
String line = kbd.readLine();
int n = Integer.parseInt(line);
//入力値の偶数/奇数判定分岐
if ((n % 2) == 0) {
System.out.println("入力された値は偶数です。");
} else {
System.out.println("入力された値は奇数です。");
}
} catch (IOException e) {
System.out.println(e);
} catch (NumberFormatException e) {
System.out.println("入力された数値が正しくありません。");
}
}
}
なんか、
String line = kbd.readLine();
int n = Integer.parseInt(line);
の2行は、1行にまとめることができるみたいですね。
int n = Integer.parseInt(kbd.readLine());
だったかな?
C言語でも、i=i+1がi++って表現できたみたいに、いろいろ書き方をまとめることができるんですよね。さすがに、まだ sum+=i(sum=sum+iと同じ意味)が、パッと見てすぐ理解できなかったりしますけど・・・。(^-^;
入力された文字列が回分か否かの判定とか・・・0~100の乱数を200件生成し、1)全ての値を表示、2)平均を表示、3)標準偏差を表示、4)中央値(メジアン)を表示、5)最頻値(モード)を表示せよとか・・・。
まだまだ実現できていない演習課題がありますYO。
夏休み期間中に、ちょっぴり考えてみます。
では、みなさん。よい週末を!
have a good weekend!!! (^-^)ノシ
コメント 0