メソッド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; } } }