質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

5954閲覧

配列priceから消費税を載せて、配列price2を返すメソッド

R.lawliet

総合スコア41

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/04/09 08:25

編集2015/04/10 00:36

課題の以下の問いに挑んでいます。
大体は出来たと思うのですが、消費税をprice2に載せた配列で上に返す事が出来ません。
ここの処理を上手く出来る方法を教えていただけないでしょうか。

該当箇所、★

/*
SubClass07クラスを作成し、以下の2つのメソッドを作成。
1
引数で受け取った値に消費税をつけて戻すtaxメソッドを作成。
*消費税は5%で計算,小数点以下は切捨て。
2
引数で受け取ったint型配列の合計を算出,
taxメソッドを呼びだし、合計に消費税をつけた値を戻すtotalメソッドを作成。

mainメソッドからtotalメソッドを呼び出し、totalメソッドから
taxメソッドを呼び出して、算出した結果をmainメソッドで出力するプログラムを作成。*/

lang

1package class07; 2 3public class ClassAdd07 { 4 5 public static void main(String[] args){ 6 //07呼び出し 7 SubClass07 sub = new SubClass07(); 8 9 int[] price = {200,800,500,1100,300}; 10 11 //taxメソッドを呼んだあとに合計するtotalメソッド呼び出し 12 int sum = sub.total(price); 13 14 System.out.println("支払い合計は" + sum + "円です。"); 15 } 16} 17 18class SubClass07{ 19 20 public int total(int[] price) { 21 //消費税を入れるtaxメソッドを呼んだ後に合計 22 tax(price); 23 24 //合計を求めるメソッド 25 int sum = 0; 26 for(int i:price2){ 27 sum += i; 28 } 29 return sum; 30 } 31 32 private int[] tax(int[] price) { 33 //★消費税を追加するメソッド 34 int[] price2 = new int[5]; 35 36 for(int i = 0; i < price.length; i++){ 37 price2[i] = (int)(price[i] * 1.05); 38 } 39 return price2; 40 } 41}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

price2を作る必要はありませんでした。

配列→合計→1.05
これで終わる内容だったのですが、

配列→配列×1.05→配列×1.05を合計
思考の順番がこっちになっていたのが原因だった様です。

しかしまだ微妙にエラーが残っています。。。
型 SubClass07 のメソッド tax() は引数 (int) に適用できません

エラー修正完了致しましたので更新します。

該当箇所、★

lang

1/* 2package class0709; 3 4public class ClassAdd07 { 5 public static void main(String[] args){ 6 int[] price = {200,800,500,1100,300}; 7 //07呼び出し 8 SubClass07 sub = new SubClass07(); 9 10 //合計してtaxを呼ぶtotalメソッド07から呼び出し 11 int sum = sub.total(price); 12 13 System.out.println("支払い合計は" + sum + "円です。"); 14 } 15} 16 17class SubClass07{ 18 //合計sum2を求めるメソッド 19 public int total(int[] price) { 20 int sum2 = 0; 21 for(int i:price){ 22 sum2 += i; 23 } 24 tax(sum2);★ 25 return tax(sum2);★ 26 } 27 28 private int tax(sum2){ 29 //消費税を載せる 30 (double)(sum2 * 1.05); 31 } 32}

↓修正後
修正箇所★

lang

1public class ClassAdd07 { 2 public static void main(String[] args){ 3 int[] price = {200,800,500,1100,300}; 4 //07呼び出し 5 SubClass07 sub = new SubClass07(); 6 7 //合計してtaxを呼ぶtotalメソッドを07から呼び出し 8 int sum = sub.total(price); 9 10 System.out.println("支払い合計は" + sum + "円です。"); 11 } 12} 13class SubClass07{ 14 //合計sum2を求めるメソッド 15 public int total(int[] price) { 16 int sum2 = 0; 17 for(int i:price){ 18 sum2 += i; 19 } 20 return tax(sum2); 21 } 22 private int tax(int sum2) { 23 //消費税を載せる 24 int sum;//★ 25 sum = (int)(sum2 * 1.05);//★ 26 return sum;//★ 27 } 28}

nagiseさんの仰る通り、returnが抜けていたのと、
消費税を載せた後の金額はint表示なので、
(double)ではなく(int)でくくると良かったのですね。

皆様のお力添えありがとうございました。

追記:ご指摘頂いたのでもうちょっと修正加えました。

lang

1public class ClassAdd07 { 2 public static void main(String[] args){ 3 int[] price = {200,800,500,1100,300}; 4 //07呼び出し 5 SubClass07 sub = new SubClass07(); 6 7 //合計してtaxを呼ぶtotalメソッドを07から呼び出し 8 int sum = sub.total(price); 9 10 System.out.println("支払い合計は" + sum + "円です。"); 11 } 12} 13class SubClass07{ 14 //合計sum2を求めるメソッド 15 public int total(int[] price) { 16 int sum2 = 0; 17 for(int i:price){ 18 sum2 += i; 19 } 20 return tax(sum2);//★ 21 } 22 private int tax(int sum2) { 23 //消費税を載せる 24 return (int)(sum2 * 1.05);//★ 25 } 26} 27

投稿2015/04/09 10:48

編集2015/04/13 01:25
R.lawliet

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2015/04/09 11:05

>型 SubClass07 のメソッド tax() は引数 (int) に適用できません と言われているのですから、 taxの呼び出し方か、 taxの定義がおかしいのです。
nagise

2015/04/09 12:47

構文エラーは一箇所起きると芋づる式にいろいろ起きる時があるので エラーメッセージを正しく読み取るのは難しい時がありますね。 SubClass07のtaxメソッドはreturnが抜けているようですよ。
swordone

2015/04/09 14:16

できればコード部分はマークアップしてください
swordone

2015/04/10 04:30

無駄があるのでその指摘をば. SubClass07#totalメソッドのreturn直前の文が完全に無意味です. SubClass07#taxも return (int) (sum2 * 1.05); だけで十分だと思います.
guest

0

total内でtaxメソッドの戻り値を受け取らずに捨ててしまってます。
というかこのコードだと
totalメソッド内でprice2が定義されていないとコンパイラなどから指摘されませんか?

投稿2015/04/09 10:37

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

R.lawliet

2015/04/09 10:51

色々と支離滅裂な事になっておりました汗 頭の中を1から整理したらある程度上手く通りました。 ありがとうございます。
guest

0

メソッドのin / outをまず意識するとよいのではないでしょうか。
基礎として、メソッドは引数で値を渡し、returnで加工した値を返すというものです。

何を渡して何を返すのか。問題文からは以下のように読み取れます。

1.taxメソッド : 引数 価格(int型)、 戻り値 消費税5%を加えた価格(int型)
2.totalメソッド : 引数 価格の配列(int配列型)、 戻り値 合計に消費税をつけた値(int型)

投稿2015/04/09 10:27

nagise

総合スコア87

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

R.lawliet

2015/04/09 10:50

メソッドは一昨日から学び始めたのですが難しいですね、 まだ基礎が全然固まっていないなと再確認しました。 自己解決はまだ途中なので、出来れば最後の詰めの訂正をお願いしますorz
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問