TxKxZxWx's blog

AWS SAA、Javaの学習

Java学習 6日目 「標準入力」

・西暦年と平成年の対応表を作る

 

昨日からの続き。

以下の演習問題がなかなか解答を導き出せなく時間がかかってしまったが、

なんとか自力で解くことができた。。

これからさらに複雑になっていくると思うので、これまで学んだことをしっかり理解してから進もうと思う。

 

 

例題:

標準入力から、1行目に西暦年、2行目に期間が与えられます。

この西暦年から始まる、期間分の「西暦年と昭和年の対応表」を出力するプログラムを作成してください。
対応表の各行は、「西暦X年は昭和Y年です」と表示します。
昭和年は、西暦1926年から西暦1988年までで、「西暦年 - 1925」で求めることができます。
なお、与えられる西暦年は、昭和年に対応しています。上の方法で求めた昭和年は、正しい昭和年(昭和1年から昭和63年)になります。

 

 

入力される値:
1930
3

 

期待する出力値:
西暦1930年は昭和5年です
西暦1931年は昭和6年です
西暦1932年は昭和7年です

 

 

解答:

import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);  //①
    int seireki = sc.nextInt();
    int count = sc.nextInt();
    int syowa;
    for (int i = 0; i < count; i++) {
      System.out.print("西暦" + seireki + "年は");
      syowa = seireki - 1925;
      System.out.println("昭和" + syowa + "年です");
      seireki += 1;  // ②
    }
  }
}

 

 

解説:

まずは入力された数値を拾ってくる必要があるので、①でscannerを宣言。

その後、seireki, count変数は「標準入力から読み込まれたデータを代入するsc.nextInt();」で、syowaは単純に変数を作っておく。

次はfor文で3回繰り返す処理を書いていく。

このままでは、

西暦1930年は昭和5年です
西暦1930年は昭和5年です
西暦1930年は昭和5年です

と同じ年数で繰り返されてしまうので②でseirekiに1を足す

この1を足すということに気づくまで手こずってしまった。。。

理解してしまえば簡単なことなので、様々な問題を解きパターンとして書き方を頭に入れていこうと思う。

 

 

 

以上でJava入門編3: ループ処理を学ぶ」を全て終了。

次のレッスンでは配列に関して学んでいく。
一歩一歩確実に理解して進んでいく。