プログラミング初心者の奮闘記

プログラミング初心者の成長と過程。

オブジェクト指向 mainメソッド


import rensyuu.Iphone;
import rensyuu.SmartPhone;

public class objectsikou1 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        //SmartPhoneをインスタンス化
        System.out.println(SmartPhone.pdctName + "をインスタンス化します。");
        SmartPhone smart = new SmartPhone();
        System.out.println("--------------------------\n");

        System.out.println(Iphone.makerName + "社の" + Iphone.itemName + "をインスタンス化していきます。");
        System.out.println("インスタンス化された" + Iphone.itemName + "の数:現在" + Iphone.getCount() + "台");

        //初期状態のiphoneをインスタンス化
        System.out.println("--------------------------");
        System.out.println("▼初期設定のiphoneをインスタンス化▼");
        Iphone iphone = new Iphone();
        System.out.println();

        iphone.turnOff();
        iphone.call("09087654321");
        System.out.println("\n▼初期設定のiphoneを通話状態、接続状態▼");
        System.out.println("通話状態:" + iphone.getCallStatus());
        System.out.println("接続状態:" + iphone.getInternetStatus());
        System.out.println("\nインスタンス化された" + Iphone.itemName + "の数:現在" + Iphone.getCount() + "台");

        //iphone8をインスタンス化
        System.out.println("--------------------------");
        System.out.println("▼iphone8をインスタンス化▼");
        Iphone iphone8 = new Iphone("iphone8","4.7インチ",128);

        System.out.println("\n▼初期設定のiphoneの通話状態を確認する。▼");
        System.out.println("通話状態:" + iphone.getCallStatus());
        System.out.println("▼iphone8の通話状態を確認する。▼");
        System.out.println("通話状態:" + iphone8.getCallStatus());
        System.out.println();

        iphone8.call("08012345678");
        System.out.println("通話状態:" + iphone8.getCallStatus());
        iphone8.call("08022223333");
        iphone8.hangUp();
        System.out.println("通話状態:" + iphone8.getCallStatus());
        iphone8.call("08011112222");
        System.out.println("\nインスタンス化された" + iphone8.itemName + "の数:現在" + iphone8.getCount() + "台");

        //iphone10をインスタンス化
        System.out.println("--------------------------");
        System.out.println("▼iphone10をインスタンス化▼");
        Iphone iphone10 = new Iphone("iphone10","5.8インチ",64);

        System.out.println("\n▼初期設定のiphoneの接続状態▼");
        System.out.println("接続状態:" + iphone.getInternetStatus());
        System.out.println("▼iphone10の接続状態を確認する。▼");
        System.out.println("接続状態:" + iphone10.getInternetStatus());
        System.out.println();

        iphone10.browser();     //接続中にブラウザを起動
        iphone10.turnOff();
        System.out.println("接続状態:" + iphone10.getInternetStatus());
        iphone10.browser();     //未接続状態でブラウザを起動
        System.out.println("\nインスタンス化された" + iphone10.itemName + "の数:現在" + iphone10.getCount() +"台");

        System.out.println("\n▼アプリをインストールします。");
        iphone10.installApp("LINE",40);
        iphone10.installApp("LINE",40);     //容量が足りないことを確認
        iphone10.installApp("FaceBook",20);
        iphone10.showAllApp();
        System.out.println("\nアプリを削除します。");
        iphone10.deleteApp("LINE");
        iphone10.deleteApp("FaceBook");
        iphone10.deleteApp("LINE");      //インストールされていないアプリの削除

    }

}

オブジェクト指向 Iphoneクラス


package rensyuu;

import java.util.HashMap;
import java.util.LinkedList;

public class Iphone extends SmartPhone {
    public static final String makerName = "apple";
    public static final String itemName = "iphone";
    private static int count = 0;       //staticはクラスが持っている変数
    private String itemId;
    private String type;                           //staticなしはオブジェクトが持っている変数
    private String size;
    private int storage;
    private String defaultBrowser = "Safari";       ///アクセス修飾子つける
    private HashMap<String,Integer> map;
    private LinkedList<String> array;

    //コンストラクタ
    public Iphone() {
        super();
        count++;    //①インスタンス化されたiphoneの台数をカウントできるように、countを1ずつ増やしましょう
        ItemId();
        setType("未設定");
        setSize("未設定");
        setStorage(0);
        getType_Size_Storage(type,size,storage);
        turnOn();           //②インスタンス化されたiphoneは自動的にインターネットに接続します
        setCallStatus(false);
        getInternetStatus();
    }

    public Iphone(String iphonetype,String iphonesize,int iphonestorage) {
        super();
        array = new LinkedList<String>();
        map = new HashMap<String,Integer>();
        count++;
        ItemId();
        setType(iphonetype);
        setSize(iphonesize);
        setStorage(iphonestorage);
        getType_Size_Storage(type,size,storage);
        turnOn();
        setCallStatus(false);
        getInternetStatus();
    }

    //ゲッター
    //①実行結果を元にゲッターを作成しましょう
    public static int getCount() {
        return count;
    }

    public void setType(String iphonetype) {
        type = iphonetype;
    }

    public void setSize(String iphonesize) {
        size = iphonesize;
    }

    public void setStorage(int iphonestorage) {
        storage = iphonestorage;
    }

    public void getType_Size_Storage(String type,String size,int storage) {
        System.out.println("型名:" + type);      //まとめる
        System.out.println("画面サイズ:" + size);
        System.out.println("容量:" + storage + "GB");
    }



    //メソッド
    //①端末IDを作成するメソッドを作成しましょう
    ////端末IDは5桁でインスタンス化された台数の連番を左から0埋めしてください

    public void ItemId() {
        itemId = String.format("%05d",count);
        System.out.println("端末ID:" + itemId );
    }



//public class Iphone8 extends Iphone {


    public void call(String PhoneNumber) {
         if(callStatus == false) {
            setCallStatus(true);
            System.out.println("iphone8から" + PhoneNumber + "に発信します。");      //iphone8を変数に
            System.out.println("電話につながりました。");
        }
    }




//}

//public class Iphone10 extends Iphone {
    public void setInternetStatus(boolean iphonegetInternetStatus) {
        internetStatus = iphonegetInternetStatus;
    }

    public void browser() {
        if(internetStatus == true) {
            System.out.println(defaultBrowser + "を起動します。");
        }else if(internetStatus == false) {
            turnOn();
            System.out.println(defaultBrowser + "を起動します。");
        }

    }


    public void installApp(String applicationName,int usestorage) {
        if(storage - usestorage < 0) {
            System.out.println("容量が足りないので、インストールできません。");
            System.out.println("残容量:" + storage + "GB");
        }else {
            System.out.println(applicationName + "をインストールしました。");
            array.add(applicationName);
            map.put(applicationName,usestorage);
            storage -= usestorage;
            System.out.println("残容量:" + storage + "GB");
        }
    }

    public void showAllApp() {
        System.out.print("インストールされているアプリ:");
        if(array.size() == 0) {
            System.out.println("なし");
        }else {
            for(int i = 0; i < array.size(); i++) {
                String app = array.get(i);
                System.out.print(app);
                if(i != array.size() -1) {
                    System.out.print(",");
                }
            }
            System.out.println();
        }
    }


    public void deleteApp(String applicationName) {
        if(map.containsKey(applicationName)) {
            int usestorage = map.get(applicationName);
            map.remove(applicationName);
            array.remove(applicationName);
            System.out.println(applicationName + "をアンインストールしました。");
            storage += usestorage;
            System.out.println("残容量:" + storage + "GB");
            showAllApp();
        }else {
            System.out.println(applicationName + "はインストールされていません。");
        }
    }
}

オブジェクト指向 SmartPhoneクラス


package rensyuu;

public class SmartPhone {
    //フィールド
    public static String pdctName = "SmartPhone";
    protected boolean callStatus = false;
    protected boolean internetStatus = false;

    //コンストラクタ
    //①インスタンス化された時にpdctNameを表示しましょう
    public SmartPhone() {
        System.out.println("プロダクト名:" + pdctName);
    }

    //ゲッター、セッター
    //①callStatusのゲッターを作成しましょう
    public boolean getCallStatus() {
        return callStatus;
    }

    //②callStatusのセッターを作成しましょう
    public void setCallStatus(boolean set) {
        callStatus = set;
    }

    //③internetStatusのゲッターを作成しましょう
    public boolean getInternetStatus() {          //iphone初期設定
        return internetStatus;
    }

// public boolean getInternetStatus(String Browser) {
//     return internetStatus;
// }

    //メソッド
    //①電話をかけるメソッドを作成しましょう
    public void call(String PhoneNumber) {
        if(callStatus == false) {
            setCallStatus(true);
            System.out.println(PhoneNumber + "に発信します。");
            System.out.println("電話につながりました。");
        }
    }

    //②電話を切るメソッドを作成しましょう
    public void hangUp() {
        setCallStatus(false);
        System.out.println("電話を切りました。");
    }
    //③インターネットに接続するメソッドを作成しましょう
    public void turnOn() {
        internetStatus = true;
        System.out.println("インターネットに接続します。");
        System.out.println("インターネットにつながりました。");
    }

    //④インターネットを切るメソッドを作成しましょう
    public void turnOff() {
        internetStatus = false;
        System.out.println("インターネットを切断しました。");
    }
}

オブジェクト指向

ポイント:

  • スーパークラスとサブクラス、継承が正しく行えているか

  • 正しいアクセス修飾子を付けているか

  • コンストラクタの引数あり、なしの使い分け

  • オーバーロード、オーバーライド

  • ゲッター、セッターの設定ができているか

問題

java-musashiurawa.hatenablog.com

java-musashiurawa.hatenablog.com

java-musashiurawa.hatenablog.com

ファイル操作2

ポイント:

  • ファイルの内容を読み込めるか

問題

java-musashiurawa.hatenablog.com

解答

package rensyuu;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class failsousa2 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        Scanner scan = new Scanner(System.in);
        String fileName = "schedule.csv";

        //ディレクトリ名を取得
        System.out.print("名前を入力してください:");
        String userName = scan.nextLine();
        System.out.println();

        System.out.println("ようこそ" + userName + "さん。");
        System.out.println("登録してあるスケジュールを表示します。");
        System.out.println();

        //ファイルを読み込む
        String path = "c:\\JavaTest\\" + userName;

        try {
            File file = new File(path + "\\" + fileName);
            if(checkBeforReadfile(file)) {
                BufferedReader br = new BufferedReader(new FileReader(file));

                String str;
                while((str = br.readLine()) != null) {
                    System.out.println(str);
                }
                br.close();
            }else {
                System.out.println(userName + "さんのファイルが存在しません。");
                System.out.println("スケジュールを登録してから実行してください。");
            }
            System.out.println();
            System.out.println("スケジュールの表示を終了します。");
        }catch(FileNotFoundException e) {
            System.out.println(e);
        }catch(IOException e) {
            System.out.println(e);
        }

    }


    private static boolean checkBeforReadfile(File file) {
        if(file.exists()) {
            if(file.isFile() && file.canRead()) {
                return true;
            }
        }
        return false;
    }
}

解答、正解

package rensyuu;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class failsousa2 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        Scanner scan = new Scanner(System.in);
        String fileName = "schedule.csv";

        //ディレクトリ名を取得
        System.out.print("名前を入力してください:");
        String userName = scan.nextLine();
        System.out.println();

        System.out.println("ようこそ" + userName + "さん。");
        System.out.println("登録してあるスケジュールを表示します。");


        //ファイルを読み込む
        String path = "c:\\JavaTest\\" + userName;

        try {
            File file = new File(path + "\\" + fileName);
            if(checkBeforReadfile(file)) {
                BufferedReader br = new BufferedReader(new FileReader(file));


                String str;
                str = br.readLine();
                String koumoku[] = str.split(",",-1);

                while((str = br.readLine()) != null) {
                    System.out.println();
                    String schedule[] = str.split(",",-1);
                    for(int i = 0; i < koumoku.length; i++) {
                        System.out.print(koumoku[i]);
                        System.out.println(schedule[i]);
                    }

                }
                br.close();

            }else {
                System.out.println(userName + "さんのファイルが存在しません。");
                System.out.println("スケジュールを登録してから実行してください。");
            }
//         System.out.println();
//         System.out.println("スケジュールの表示を終了します。");
        }catch(FileNotFoundException e) {
            System.out.println(e);
        }catch(IOException e) {
            System.out.println(e);
        }catch(NullPointerException e) {
            System.out.println(e);
        }
        finally {
            System.out.println();
            System.out.println("スケジュールの表示を終了します。");
        }
    }


    private static boolean checkBeforReadfile(File file) {
        if(file.exists()) {
            if(file.isFile() && file.canRead()) {
                return true;
            }
        }
        return false;
    }
}

ファイル操作1

ポイント:

  • ディレクトリ、ファイルが作成できるか

  • 例外処理ができているか

  • ファイルに書き込みができているか

  • プログラムは簡潔で分かりやすいか

問題

java-musashiurawa.hatenablog.com

解答

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class filesousa1 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        Scanner scan = new Scanner(System.in);
        String fileName = "schedule.csv";

        //ディレクトリ名を取得
        System.out.print("名前を入力してください:");
        String userName = scan.nextLine();

        //ディレクトリを作成する
        String path = "c:\\JavaTest\\" + userName;

        File newdir = new File(path);
        boolean checkdirectory = newdir.exists();
        if(checkdirectory == false) {
            newdir.mkdir();

        //新規の場合、ファイルを作成
            try {
                File newfile = new File(path + "\\" + fileName);
                newfile.createNewFile();
            }catch(IOException e) {
                System.out.println(e);
            }
        }


        //スケジュールを入力
        try {
            File file = new File(path + "\\" + fileName);
            PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file,true)));
            if(checkdirectory == false) {
                String koumoku[] = {"日付:","予定:","開始時間:","終了時間:","備考:"};

                for(int i = 0; i < koumoku.length; i++) {
                    pw.print(koumoku[i]);
                    if(i != koumoku.length - 1)   {
                        pw.print(",");
                    }
                }
                pw.println();
            System.out.println("ようこそ" + userName + "さん。");
            }
            String schedule_continue;
            do {
                schedule_tuika(pw);
                schedule_continue = scan.nextLine();
            }while(schedule_continue.equals("はい"));


            System.out.println("スケジュール入力を終了します。");
            pw.close();
        }catch(IOException e) {
            System.out.println(e);
        }

    }



    private static void schedule_tuika(PrintWriter pw) {
        Scanner scan = new Scanner(System.in);
        String koumoku[] = {"日付:","予定:","開始時間:","終了時間:","備考:"};
        int j;

        System.out.println("スケジュールを入力してください。");
        for(j = 0; j < koumoku.length; j++) {
            System.out.print(koumoku[j]);
            String schedule = scan.nextLine();
            pw.print(schedule);
            if(j != koumoku.length - 1) {
                pw.print(",");
            }
        }
        pw.println();
        System.out.println("予定を入れました。");
        System.out.println("引き続き予定を入れる場合は「はい」と入力してください。");
        System.out.print("予定を入れる:");

    }
}

メソッド1

ポイント

  • メソッドの使い方を理解しているか

  • 戻り値の使い方を理解しているか

  • プログラムは簡潔で分かりやすいか

問題

java-musashiurawa.hatenablog.com

解答1と正解

import java.util.Scanner;

public class method1 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        Scanner scan = new Scanner(System.in);
        int deliveryFee;
        String from = "東京都";
        String to;      // 任意の都道府県を指定
        int size;      // 任意のサイズを指定

        System.out.print("お届け先を入力してください:");
        to = scan.nextLine();
        System.out.print("荷物のサイズを入力してください:");
        size = scan.nextInt();

        deliveryFee = getDeliveryFee(from,to,size);
        if(deliveryFee == 0) {
            System.out.println("入力内容に誤りがあります。");
        }else {
            System.out.println("郵送料:" + deliveryFee + "円");
        }

    }


    private static int getDeliveryFee_tokyo(String from,String to,int size) {
        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {810,1030,1280,1530,1780,2010,2340};

        for(int i = 0; i < delivery_size.length; i++)
            if(to.equals(from) &&  size == delivery_size[i]) {
                return fee[i];
            }
        return 0;
    }

    private static int getDeliveryFee_hokkaidou(String from,String to,int size) {

        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {1300,1530,1760,2020,2260,2490,2850};

        for(int i = 0; i < delivery_size.length; i++)
            if(to.equals("北海道") &&  size == delivery_size[i]) {
                return fee[i];
            }
        return 0;
    }



    private static int getDeliveryFee_t_k_s_h_t(String from,String to,int size) {

        String t_k_s_h_t[] = {"青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県",
                                "群馬県","埼玉県","千葉県","神奈川県","山梨県","新潟県","長野県","富山県",
                                "石川県","福井県","静岡県","愛知県","岐阜県","三重県"};

        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {870,1100,1330,1590,1830,2060,2410};

        for(int i = 0; i < t_k_s_h_t.length; i++) {
            for(int j = 0; j < delivery_size.length; j++) {
                if(to.equals( t_k_s_h_t[i]) &&  size == delivery_size[j]) {
                    return fee[j];
                }
            }
        }
        return 0;
    }

    private static int getDeliveryFee_kinki(String from,String to,int size) {

        String kinki[] = {"奈良県","滋賀県","京都府","大阪府","兵庫県","和歌山県"};

        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {970,1200,1440,1690,1950,2160,2530};

        for(int i = 0; i < kinki.length; i++) {
            for(int j = 0; j < delivery_size.length; j++) {
                if(to.equals( kinki[i]) &&  size == delivery_size[j]) {
                    return fee[j];
                }
            }
        }
        return 0;
    }

    private static int getDeliveryFee_t_s(String from,String to,int size) {

        String t_s[] = {"岡山県","広島県","鳥取県","島根県","山口県","徳島県","香川県","愛媛県","高知県"};

        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {1100,1310,1560,1800,2060,2270,2640};

        for(int i = 0; i < t_s.length; i++) {
            for(int j = 0; j < delivery_size.length; j++) {
                if(to.equals(t_s[i]) && size == delivery_size[j]) {
                    return fee[j];
                }
            }
        }
        return 0;
    }

    private static int getDeliveryFee_kyuusyuu(String from,String to,int size) {

        String kyuusyuu[] = {"福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県"};

        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {1300,1530,1760,2020,2260,2490,2850};

        for(int i = 0; i < kyuusyuu.length; i++) {
            for(int j = 0; j < delivery_size.length; j++) {
                if(to.equals(kyuusyuu[i]) && size == delivery_size[j]) {
                    return fee[j];
                }
            }
        }
        return 0;
    }

    private static int getDeliveryFee_okinawa(String from,String to,int size) {


        int delivery_size[] = {60,80,100,120,140,160,170};

        int fee[] = {1350,1630,1900,2170,2440,2660,3060};

        for(int i = 0; i < delivery_size.length; i++) {
            if(to.equals("沖縄県") && size == delivery_size[i]) {
                return fee[i];
            }
        }
        return 0;

    }

    private static int getDeliveryFee(String from,String to,int size) {
                int Fee;
            Fee = getDeliveryFee_tokyo(from,to,size);
            if(Fee != 0) {
                return Fee;
            }
            Fee = getDeliveryFee_hokkaidou(from,to,size);
            if(Fee != 0) {
                return Fee;
            }
            Fee = getDeliveryFee_t_k_s_h_t(from,to,size);
            if(Fee != 0) {
                return Fee;
            }
            Fee = getDeliveryFee_kinki(from,to,size);
            if(Fee != 0) {
                return Fee;
            }
            Fee = getDeliveryFee_t_s(from,to,size);
            if(Fee != 0) {
                return Fee;
            }
            Fee = getDeliveryFee_kyuusyuu(from,to,size);
            if(Fee != 0) {
                return Fee;
            }
            Fee = getDeliveryFee_okinawa(from,to,size);
                return Fee;

    }
}

解答2と正解

import java.util.Scanner;

public class method1 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        Scanner scan = new Scanner(System.in);
        int deliveryFee;
        String from = "東京都";
        String to;      // 任意の都道府県を指定
        int size;      // 任意のサイズを指定

        System.out.print("お届け先を入力してください:");
        to = scan.nextLine();
        System.out.print("荷物のサイズを入力してください:");
        size = scan.nextInt();

        deliveryFee = getDeliveryFee(from,to,size);
        if(deliveryFee == 0) {
            System.out.println("入力内容に誤りがあります。");
        }else {
            System.out.println("郵送料:" + deliveryFee + "円");
        }

    }

private static int getDeliveryFee(String from,String to,int size) {

        String Todoufukenn[][] = {
                {"東京都"},
                {"北海道"},
                {"青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県",
                "群馬県","埼玉県","千葉県","神奈川県","山梨県","新潟県","長野県","富山県",
                "石川県","福井県","静岡県","愛知県","岐阜県","三重県"},
                {"奈良県","滋賀県","京都府","大阪府","兵庫県","和歌山県"},
                {"岡山県","広島県","鳥取県","島根県","山口県","徳島県","香川県","愛媛県","高知県"},
                {"福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県"},
                {"沖縄県"}
        };

        int num = 7;
        for(int i = 0; i < Todoufukenn.length; i++) {
            for(int j = 0; j < Todoufukenn[i].length; j++) {
                if(to.equals(Todoufukenn[i][j])) {
                    num = i;
                    break;
                }
            }
        }


        switch(num) {
            case 0:
                int fee_tokyo[] = {810,1030,1280,1530,1780,2010,2340};
        
                int delivery_size_tokyo[] = {60,80,100,120,140,160,170};
        
                for(int k = 0; k < delivery_size_tokyo.length; k++) {
                    if(size == delivery_size_tokyo[k]) {
                        return fee_tokyo[k];
                    }
                }
            case 1:
            case 5:
                 int fee_hokkaidou_kyuusyuu[] = {1300,1530,1760,2020,2260,2490,2850};
        
                 int delivery_size_hokkaidou_kyuusyuu[] = {60,80,100,120,140,160,170};
        
                    for(int k = 0; k < delivery_size_hokkaidou_kyuusyuu.length; k++) {
                        if(size == delivery_size_hokkaidou_kyuusyuu[k]) {
                            return fee_hokkaidou_kyuusyuu[k];
                        }
                    }
            case 2:
                int fee_t_k_s_h_t[] = {870,1100,1330,1590,1830,2060,2410};
        
                int delivery_size_t_k_s_h_t[] = {60,80,100,120,140,160,170};
        
                for(int k = 0; k < delivery_size_t_k_s_h_t.length; k++) {
                    if(size == delivery_size_t_k_s_h_t[k]) {
                        return fee_t_k_s_h_t[k];
                    }
                }
            case 3:
                int fee_kinki[] = {970,1200,1440,1690,1950,2160,2530};
        
                int delivery_size_kinki[] = {60,80,100,120,140,160,170};
        
                for(int k = 0; k < delivery_size_kinki.length; k++) {
                    if(size == delivery_size_kinki[k]) {
                        return fee_kinki[k];
                    }
                }
            case 4:
                int fee_tyuugoku_sikoku[] = {1100,1310,1560,1800,2060,2270,2640};
        
                int delivery_size_tyuugoku_sikoku[] = {60,80,100,120,140,160,170};
        
                for(int k = 0; k < delivery_size_tyuugoku_sikoku.length; k++) {
                    if(size == delivery_size_tyuugoku_sikoku[k]) {
                        return fee_tyuugoku_sikoku[k];
                    }
                }
            case 6:
                int fee_okinawa[] = {1350,1630,1900,2170,2440,2660,3060};
        
                int delivery_size_okinawa[] = {60,80,100,120,140,160,170};
        
                for(int k = 0; k < delivery_size_okinawa.length; k++) {
                    if(size == delivery_size_okinawa[k]) {
                        return fee_okinawa[k];
                    }
                }
         default:
                return 0;
        }
    }
}

解答3と正解

import java.util.Scanner;

public class method1 {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        Scanner scan = new Scanner(System.in);
        int deliveryFee;
        String from = "東京都";
        String to;      // 任意の都道府県を指定
        int size;      // 任意のサイズを指定

        System.out.print("お届け先を入力してください:");
        to = scan.nextLine();
        System.out.print("荷物のサイズを入力してください:");
        size = scan.nextInt();

        deliveryFee = getDeliveryFee(from,to,size);
        if(deliveryFee == 0) {
            System.out.println("入力内容に誤りがあります。");
        }else {
            System.out.println("郵送料:" + deliveryFee + "円");
        }

    }
    private static int getDeliveryFee(String from,String to,int size) {
        String Todoufukenn[][] = {
                {"東京都"},
                {"北海道"},
                {"青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県",
                "群馬県","埼玉県","千葉県","神奈川県","山梨県","新潟県","長野県","富山県",
                "石川県","福井県","静岡県","愛知県","岐阜県","三重県"},
                {"奈良県","滋賀県","京都府","大阪府","兵庫県","和歌山県"},
                {"岡山県","広島県","鳥取県","島根県","山口県","徳島県","香川県","愛媛県","高知県"},
                {"福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県"},
                {"沖縄県"}
                };
        // お届け先のグループ分け
        int num = 7;
        for(int i = 0; i < Todoufukenn.length; i++) {
            for(int j = 0; j < Todoufukenn[i].length; j++) {
                if(to.equals(Todoufukenn[i][j])) {
                    num = i;
                    break;
                }
            }
        }

        switch(num) {
            case 0:
                return fee_tokyo(size);
            case 1:
            case 5:
                return fee_hokkaidou_kyuusyuu(size);
            case 2:
                return fee_fee_t_k_s_h_t(size);
            case 3:
                return fee_kinki(size);
            case 4:
                return fee_tyuugoku_sikoku(size);
            case 6:
                return fee_okinawa(size);
         default:
                return 0;

        }
    }

    private static int fee_tokyo(int size) {

        switch(size) {
            case 60:
                return 810;
            case 80:
                return 1030;
            case 100:
                return 1280;
            case 120:
                return 1530;
            case 140:
                return 1780;
            case 160:
                return 2010;
            case 170:
                return 2340;
         default:
                return 0;
        }
    }

    private static int fee_hokkaidou_kyuusyuu(int size) {

        switch(size) {
        case 60:
            return 1300;
        case 80:
            return 1530;
        case 100:
            return 1760;
        case 120:
            return 2020;
        case 140:
            return 2260;
        case 160:
            return 2490;
        case 170:
            return 2850;
     default:
            return 0;
        }
    }

    private static int fee_fee_t_k_s_h_t(int size) {

        switch(size) {
        case 60:
            return 870;
        case 80:
            return 1100;
        case 100:
            return 1330;
        case 120:
            return 1590;
        case 140:
            return 1830;
        case 160:
            return 2060;
        case 170:
            return 2410;
     default:
            return 0;
        }
    }


    private static int fee_kinki(int size) {

        switch(size) {
        case 60:
            return 970;
        case 80:
            return 1200;
        case 100:
            return 1440;
        case 120:
            return 1690;
        case 140:
            return 1950;
        case 160:
            return 2160;
        case 170:
            return 2530;
     default:
            return 0;
        }
    }

    private static int fee_tyuugoku_sikoku(int size) {

        switch(size) {
        case 60:
            return 1100;
        case 80:
            return 1310;
        case 100:
            return 1560;
        case 120:
            return 1800;
        case 140:
            return 2060;
        case 160:
            return 2270;
        case 170:
            return 2640;
     default:
            return 0;
        }
    }

    private static int fee_okinawa(int size) {

        switch(size) {
        case 60:
            return 1350;
        case 80:
            return 1630;
        case 100:
            return 1900;
        case 120:
            return 2170;
        case 140:
            return 2440;
        case 160:
            return 2660;
        case 170:
            return 3060;
     default:
            return 0;
        }
    }
}