作って覚えるプログラミング精選課題集(Java基礎編)の課題が解けません

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 2,234

ASHN

score 5

Qiitaというサイトに
『作って覚えるプログラミング精選課題集(Java基礎編)』

という課題が記載してあるのですが、レベル1と2は何とか解けたのですが、レベル3と4が全く歯が立ちません。

以下にレベル3と4の問題を記載しておきます。
アドバイスいただきたいです、宜しくお願いいたします。

レベル3 干支の計算
西暦4桁から干支を算出するプログラムです。
ちょっと複雑なロジックに慣れることが目標です。

■メッセージの例
2017年の干支は丁酉(ひのととり)です。

想定所要時間:6時間

仕様
以下を参照する
http://hishoshou.blog108.fc2.com/blog-entry-6.html
条件分岐はCase文を使用すること

プログラム一覧
Kakezan.java
public static void main(String args[])
int型変数「seinen」フィールドに生年を保持する。
seinenを引数にしてjikkanを呼び出し、結果を二次元配列で受け取る
seinenを引数にしてjunishiを呼び出し、結果を二次元配列で受け取る
コンソールに出力する

private String[][] jikkan(int seinen)
十干を計算して二次元配列の形でreturnする

private String[][] junishi(int seinen)
十二支を計算して二次元配列の形でreturnする

ヒント
2次元配列を使って漢字と読み仮名の両方を保持する
十二支と十干はメソッドに入れても構いませんし、staticをつけてクラス変数化しても構いません。
レベル4 会員登録機能
クラスとインスタンス、JavaBeansの使い方に慣れることが目標です。
想定所要時間:6時間

仕様
3人分の会員情報を登録し、コンソールに以下のような文言を出力してください。
<例>
山田太郎さんの会員IDは0001です。登録:2017年4月1日

登録会員

①ID:0001 名前:山田太郎 登録日時:現在日時(yyyy/mm/dd)
②ID:0002 名前:鈴木花子 登録日時:現在日時(yyyy/mm/dd)
③ID:0003 名前:佐藤琢磨 登録日時:現在日時(yyyy/mm/dd)

出力はプログラムの最後にまとめて行ってください。
※データベースに登録するわけではないので「なんちゃって」会員登録です

プログラム一覧
すべてのjavaファイルはjp.co.kenshuパッケージ内に作成すること

Kaiin.java
int型「id」
String型「name」
Date型「addDate」
※それぞれgetter/setterを作成する

Register.java
public static void main(String args[])
ArrayListクラスを使ってKaiin型の動的配列「kaiinAll」を作成する。
kaiinAddメソッドを呼び出して結果をKaiinAllに追加する。※登録会員数分繰り返す
KaiinAllに入っているすべての会員情報をコンソールに出力する

private Kaiin kaiinAdd(int id,String name)
Kaiinクラスのインスタンスを作成する
引数を使ってIDと名前をsetする。登録日時はDate関数を使う
データをセットしたインスタンスをreturnする

ヒント
ポイントはKaiin型の動的配列を作るところです。
作ったデータがどこにいるのかをよく追いかけながら作成してみてください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ASHN

    2018/04/23 23:23

    自分が書いたソースの上位版って感じがしますね!「throws java.lang.Exception」これはどんな動作をしているのでしょうか

    キャンセル

  • asahina1979

    2018/04/23 23:27

    たいしていみがない。消すのが面倒だっただけ(ideone の初期テンプレート)

    キャンセル

  • ASHN

    2018/04/23 23:55

    なるほど!上のimportも初期テンプレートですかね?使い方がわかりませんが…

    キャンセル

回答 5

+2

自分で勉強するための問題ですから、丸投げせずにもうちょい自分であがいてみましょうよ
具体的になにがわからないのでしょうか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/23 22:08

    お返事ありがとうございます。
    自暴自棄になって丸投げしてしまいましたすいません。

    まずレベル3の問題の話ですが

     int型変数「seinen」フィールドに生年を保持する。
     seinenを引数にしてjikkanを呼び出し、結果を二次元配列で受け取る
     seinenを引数にしてjunishiを呼び出し、結果を二次元配列で受け取る

    この部分がわかりません。

    public static void main(String args[])

      この間の部分に下の2つのメソッド?を呼び出して表示させるイメージでしょうか?


    private String[][] jikkan(int seinen)
     十干を計算して二次元配列の形でreturnする

    private String[][] junishi(int seinen)
     十二支を計算して二次元配列の形でreturnする

    キャンセル

+2

  • 組み合わせなので六十花甲子の計算のほうがいいとおもう題名ですが
    取得するのは [[甲,きのえ],[子,ね]] のようになると思いますが、
    get十二支(int since) で String[][] を返す必要性が感じられません。
    また 4時間なのか6時間なのかちぐはぐですね

[[甲],[きのえ]] で返させるなんて間抜けですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/23 23:21

    >asahina1979さん
    お返事ありがとうございます。
    六十花甲子という言葉初めて聞きました・・・非常識ですいません。。。
    配列も全然知識がないのでわけがわかりません、、、難しいですね

    キャンセル

+2

レベル3 干支の計算

だけ実装してみました。

条件分岐はCase文を使用すること

に関しては使わなくても実装できるので、スルーしました。
無駄にクラス分けを行ったのでコードが長くなってしまいましたが、ご参考まで。

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;

public class A123212 {
    private static final EtoCalendar etoCalendar = EtoCalendar.getInstance();
    private static final Scanner sc = new Scanner(System.in);

    int seinen;// 変数名は原文ママ

    A123212(int seinen) {
        this.seinen = seinen;
    }

    public static void main(String[] args) throws NumberFormatException {
        int year = get_input();
        A123212 prog = new A123212(year);
        prog.displayAnswer();
        prog.displayAnswerTwo();
    }

    private void displayAnswer() {
        String[][] jikkan = this.jikkan(this.seinen);
        String[][] junishi = this.junishi(this.seinen);
        final String kanji = jikkan[0][0] + junishi[0][0];
        final String hiragana = jikkan[1][0] + junishi[1][0];
        System.out.println(String.format("%d年の干支は%s(%s)です。", this.seinen, kanji, hiragana));
    }

    private void displayAnswerTwo() {
        Eto eto = etoCalendar.getEto(this.seinen);
        System.out.println(String.format("%d年の干支は%s(%s)です。", this.seinen, eto.getKanji(), eto.getHiragana()));
    }

    public static int get_input() throws NumberFormatException {
        return Integer.parseInt(sc.nextLine());
    }

    // メソッド名、引数、戻り値は原文ママ
    private String[][] jikkan(int seinen) {
        CelestialStem stem = etoCalendar.getJikkan(seinen);
        return new String[][] { { stem.getKanji() }, { stem.getHiragana() } };
    }

    // メソッド名、引数、戻り値は原文ママ
    private String[][] junishi(int seinen) {
        EarthlyBranches stem = etoCalendar.getJunishi(seinen);
        return new String[][] { { stem.getKanji() }, { stem.getHiragana() } };
    }
}

interface Readings {
    String getKanji();

    String getHiragana();
}

enum CelestialStem implements Readings {
    ONE("甲", "きのえ"), TWO("乙", "きのと"), THREE("丙", "ひのえ"), FOUR("丁", "ひのと"), FIVE("戊", "つちのえ"), SIX("己",
            "つちのと"), SEVEN("庚", "かのえ"), EIGHT("辛", "かのと"), NINE("壬", "みずのえ"), TEN("癸", "みずのと");
    CelestialStem(String kanji, String hiragana) {
        this.kanji = kanji;
        this.hiragana = hiragana;
    }

    private final String kanji;
    private final String hiragana;

    @Override
    public String getKanji() {
        return this.kanji;
    }

    @Override
    public String getHiragana() {
        return this.hiragana;
    }

    @Override
    public String toString() {
        return this.name();
    }
}

enum EarthlyBranches implements Readings {
    ONE("子", "ね"), TWO("丑", "うし"), THREE("寅", "とら"), FOUR("卯", "う"), FIVE("辰", "たつ"), SIX("巳", "み"), SEVEN("午",
            "うま"), EIGHT("未", "ひつじ"), NINE("申", "さる"), TEN("酉", "とり"), ELEVEN("戌", "いぬ"), TWELVE("亥", "い");
    EarthlyBranches(String kanji, String hiragana) {
        this.kanji = kanji;
        this.hiragana = hiragana;
    }

    private final String kanji;
    private final String hiragana;

    @Override
    public String getKanji() {
        return this.kanji;
    }

    @Override
    public String getHiragana() {
        return this.hiragana;
    }

    @Override
    public String toString() {
        return this.name();
    }
}

class Eto implements Readings {
    private final String kanji;
    private final String hiragana;

    public Eto(String kanji, String hiragana) {
        this.kanji = Objects.requireNonNull(kanji);
        this.hiragana = Objects.requireNonNull(hiragana);
    }

    public Eto(CelestialStem stem, EarthlyBranches animal) {
        this(stem.getKanji() + animal.getKanji(), stem.getHiragana() + animal.getHiragana());
    }

    @Override
    public String getKanji() {
        return this.kanji;
    }

    @Override
    public String getHiragana() {
        return this.hiragana;
    }

    @Override
    public String toString() {
        return String.join("-", this.kanji, this.hiragana);
    }
}

final class EtoCalendar {
    private static final EtoCalendar instance = new EtoCalendar();
    private static final List<CelestialStem> stems = Collections
            .unmodifiableList(Arrays.asList(CelestialStem.values()));
    private static final List<EarthlyBranches> animals = Collections
            .unmodifiableList(Arrays.asList(EarthlyBranches.values()));

    private EtoCalendar() {
        ;
    }

    public static EtoCalendar getInstance() {
        return instance;
    }

    public Eto getEto(int year) {
        return new Eto(getJikkan(year), getJunishi(year));
    }

    public CelestialStem getJikkan(int year) {
        int index = (year + 6) % stems.size();
        return stems.get(index);
    }

    public EarthlyBranches getJunishi(int year) {
        int index = (year + 8) % animals.size();
        return animals.get(index);
    }
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/04 17:11

    要求を忠実に再現いただきありがとうございます。
    見たことない文字ばかりでうおってなってますが今Ecripseに移して動きを確認しているところです。
    オーバーライドに関してまだ無知なのですが勉強させていただきます。

    出力が2つあるのは2種類の出力方法を記載していただいているという認識でよろしいでしょうか。
    全く違う書き方をしているのに同じ結果がきちんと出力されていて感動です。
    1つ1つの動きを確認して勉強させていただきます。

    キャンセル

  • 2018/05/04 20:41

    >ASHNさんへ
    2種類の出力方法を記載→はい。displayAnswerとdisplayAnswerTwoです。

    キャンセル

  • 2018/05/05 20:45

    全く違う書き方をしているのに全く同じ答えを出力で来ていてすごいですね
    状況に応じてどっちを使うとか出てくることがありそうなのでいろんなパターンを覚えて知識を広げていきたいです。

    // メソッド名、引数、戻り値は原文ママ
    ここのアクセス修飾子がprivateとなっているところはJavaBeansの原理を利用しているのでしょうか?
    (getとset)

    キャンセル

  • 2018/05/05 20:51 編集

    >ASHNさんへ
    JavaBeansとか関係なく普通のJava言語の書き方ですが。何を聞きたかったのでしょうか?上のコメントの話でしょうか? この質問を外部サイト(google)などから検索して後から見た人のためにコメントを付けているだけですが。

    キャンセル

checkベストアンサー

+1

<第3問>

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

       Scanner sc = new Scanner(System.in);
       int year = sc.nextInt();
       String jikkan = jikkan(year);
       String juunisi = juunisi(year);

       System.out.println(year + "年の干支は" + jikkan + juunisi + "です。");
    }

    public static String jikkan(int n){
        String []jikkan = {"甲","乙","丙","丁","戊","己","庚 ","辛"," 壬 "," 癸"};
        n = (n + 6) % 10;

        return jikkan[n];
    }

    public static String juunisi(int n){
        String []juunisi = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
        n = (n + 8) % 12;
        return juunisi[n];
    }
}


<第4問>
第4問は(ヒントとして、)データが入力ではない状態で書きました。

import java.util.ArrayList;
import java.sql.Date;

public class Main {
    public static void main(String[] args) {


        ArrayList<Member>person = new ArrayList<>();

        person.add(new Member("0001","山田太郎",Date.valueOf("2018-04-23")));
        person.add(new Member("0002","鈴木花子",Date.valueOf("2018-04-23")));
        person.add(new Member("0003","佐藤琢磨",Date.valueOf("2018-04-23")));

        for(Member member : person){
            member.Show_profile();
        }
    }
}

class Member{
    private String my_Id;
    private String my_Name;
    private Date add_Date;

    public Member(String id, String name, Date date){
        my_Id = id;
        my_Name = name;
        add_Date = date;
    }
    public void Show_profile(){
        System.out.println("ID:" + my_Id + "名前:" + my_Name + "現在時刻:" + add_Date);
    }
}


<追記>
イメージ説明

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date d1 = calendar.getTime();

        ArrayList<Member>person = new ArrayList<>();
        System.out.println("IDと名前を入力");
        for(int i = 1; i <= 3 ;i++){
            System.out.println(i + "人目");
            String id,name,date1;
            System.out.print("ID:");
            id = sc.nextLine();
            System.out.print("名前:");
            name = sc.nextLine();
            date1 = sdf.format(d1);

            person.add(new Member(id,name,date1));
        }
        for(Member member : person){
            member.Show_profile();
        }
    }
}

class Member{
    private String my_Id;
    private String my_Name;
    private String add_Date;

    public Member(String id, String name, String date){
        my_Id = id;
        my_Name = name;
        add_Date = date;
    }
    public void Show_profile(){
        System.out.println("ID:" + my_Id + "名前: " + my_Name + "現在時刻:" + add_Date);
    }
}


<追記>

import java.util.Scanner;

public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        String answer = jikkan(0,year) + juunisi(0,year)  + "(" + jikkan(1,year) + juunisi(1,year) + ")";
        System.out.println(year + "年は" + answer + "です。");


    }
    public static String jikkan(int num, int year){
        String[][] jikkan = {{"庚","辛","壬","癸","甲","乙","丙","丁","戊","己"},{"かのえ","かのと","みずのへ","みずのと","きのえ","きのと","ひのえ","ひのと","つちのえ","つちのと"}};
        year = year % 10;

        String answer = jikkan[num % 2][year];

        return answer;
    }

    public static String juunisi(int num, int year){
        String[][] juuni = {{"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未"},{"さる","とり","いぬ","い","ね","うし","とら","う","たつ","み","うま","ひつじ"}};

        year = year % 12;

        String answer = juuni[num % 2][year];

        return answer;
    }
}


<追記>classで書きました。

import java.util.Scanner;

public class Main {
    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        Kanshi kanshi = new Kanshi();
        Kanshi jikkan = kanshi.Jikkan(year);
        Kanshi juuni = kanshi.Juuni(year);
        String answer = jikkan.kanji + juuni.kanji +  "(" + jikkan.hiragana + juuni.hiragana + ")";
        System.out.println(year + "年は" + answer + "です。");
    }
}

class Kanshi{

    String kanji;
    String hiragana;

    public Kanshi Jikkan(int year){

        String[][] jikkan_type = {{"庚","辛","壬","癸","甲","乙","丙","丁","戊","己"},{"かのえ","かのと","みずのへ","みずのと","きのえ","きのと","ひのえ","ひのと","つちのえ","つちのと"}};
        Kanshi jikkan = new Kanshi();
        jikkan.kanji = jikkan_type[0][year % 10];
        jikkan.hiragana = jikkan_type[1][year % 10];
        return jikkan;
    }

    public Kanshi Juuni(int year){

        String[][] juuni_type = {{"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未"},{"さる","とり","いぬ","い","ね","うし","とら","う","たつ","み","うま","ひつじ"}};
        Kanshi juuni = new Kanshi();
        juuni.kanji = juuni_type[0][year % 12];
        juuni.hiragana = juuni_type[1][year % 12];
        return juuni;
    }
}

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/04 16:26

    switch文を使ったやり方ですが無事に出力できましたので貼っておきます。
    すごいごちゃごちゃしてますね・・・

    import java.util.Scanner;

    public class Main {
    public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    int year = sc.nextInt();
    Kanshi kanshi = new Kanshi();
    Kanshi jikkan = kanshi.Jikkan(year);
    Kanshi juuni = kanshi.Juuni(year);
    String answer = jikkan.kanji + juuni.kanji + "(" + jikkan.hiragana + juuni.hiragana + ")";
    System.out.println(year + "年は" + answer + "です。");
    }
    }

    class Kanshi{

    String kanji;
    String hiragana;

    public Kanshi Jikkan(int year){

    String[][] jikkan_type = {{"庚","辛","壬","癸","甲","乙","丙","丁","戊","己"},{"かのえ","かのと","みずのへ","みずのと","きのえ","きのと","ひのえ","ひのと","つちのえ","つちのと"}};
    Kanshi jikkan = new Kanshi();

    switch(year = year % 10){
    case 0: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 1: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 2: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;
    case 3: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 4: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 5: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 6: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 7: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 8: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    case 9: jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    break;

    default:
    break;
    }
    return jikkan;
    }

    public Kanshi Juuni(int year){

    String[][] juuni_type = {{"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未"},{"さる","とり","いぬ","い","ね","うし","とら","う","たつ","み","うま","ひつじ"}};
    Kanshi juuni = new Kanshi();

    switch(year = year % 12){
    case 0: juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 1: juuni.kanji = juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 2:juuni.kanji = juuni_type[0][year];
    juuni.hiragana =juuni_type[1][year];
    break;

    case 3: juuni.kanji = juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 4: juuni.kanji = juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 5: juuni.kanji = juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 6: juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 7: juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 8: juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 9: juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 10 : juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    case 11: juuni.kanji =juuni_type[0][year];
    juuni.hiragana = juuni_type[1][year];
    break;

    default:
    break;
    }
    return juuni;
    }
    }

    キャンセル

  • 2018/05/04 16:32

    switch文のところは
    jikkan.kanji = jikkan_type[0][year];
    jikkan.hiragana = jikkan_type[1][year];
    juuni.kanji =juuni_type[0][year];juuni.hiragana = juuni_type[1][year];
    とできるのでやはりswitch文は不要ということがわかると思います。
    (その問題はどこにswitch文を使わせたいのか甚だ疑問です。)

    キャンセル

  • 2018/05/04 16:59

    特に場所も書いてないですしね。
    使うとしたら十干と十二支のところだと思うのですが・・・使い方覚えるのにはよかったですが、遠回りでしたね。

    前提条件にpublic Kanshi Jikkan(int year)ではなくprivateと記載がされていて、
    今アクセス修飾子について調べているところなのですが、
    https://www.sejuku.net/blog/22679

    ここよりprivateだと同一クラス内のみと記載があります。
    ここも何故staticでなくprivateで記載されているのか謎なのですが、private Kanshi Jikkan(int year)とした場合にMainクラスのkanshi.Jikkan(year);で呼び出す方法はあるのでしょうか。

    現在探っているところですがご存知でしたら知識をいただきたいです。

    キャンセル

+1

少なくとも干支に関しては参照リンク先の説明をそのまま実践すればいいだけですよ?
まさか「割ったあまり」が計算できないとかですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/23 22:12

    >swordoneさん
    お返事ありがとうございます。

    記述の仕方といいますか、全体的な絵が見えてこないんです。

    レベル2の問題は

    package kakzezan;

    public class Kakezan {
    public static void main(String[] args) {
    kuku();
    }
    public static void kuku(){
    int i,j;
    for(i=1; i<=9; i++) {
    for(j=1; j<=9; j++) {
    System.out.print(i * j+"\t");
    }
    System.out.print("\n");
    }
    }
    }
    こんな感じで記述したのですが、これをレベル3に当てはめた場合、

    public static void kuku(){に該当する部分で干支の計算をさせて、
    上の方のpublic static void main(String[] args) {

    で呼び出して表示させるようなイメージでしょうか

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る