🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

解決済

1回答

1580閲覧

メソッドを使い偶数の和を求める

kyohei1999

総合スコア1

Java

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

0グッド

0クリップ

投稿2021/01/21 18:22

編集2021/01/21 18:48

前提・実現したいこと

javaで偶数の和を求めるプログラムを作成しています。その際、以下のメソッドを使用します。

catchNumber(int calctype,int value) 戻り値はint型
引数に応じて、総和する数(今回は偶数)の値を返す。総和対象でない場合、0を返す。

isEvenNumber(int value) 戻り値はboolean型
引数が偶数なら、trueを返す。

現状は偶数の総和のみですが、後ほど奇数の和も、caseNumberに入れる数を変えることで指定できるようにします。

発生している問題・エラーメッセージ

エラーメッセージは出なかった。
caseNumber = 2のときは、整数を指定したい。beginNumberからendNumberまでの偶数の和を出したいのだが、何故か複数の計算結果が表示されてしまう。

該当のソースコード

使用言語 java

ソースコード
public class lesson {
public static void main( String[] args) {
//caseNumは計算方法の選択ができる変数。例えば1だったら奇数のみ、2だったら偶数のみを総和する
int caseNum = Integer.parseInt( args[0]);
int beginNum = Integer.parseInt( args[1]);
int endNum = Integer.parseInt( args[2]);

int sumNum = 0; for( int i = beginNum; i <= endNum; i++) { //関数を呼び出す catchNumber( caseNum,i); sumNum = sumNum + value; System.out.println( beginNum + "から" + endNum + "までの偶数の和は" + sumNum); } } //catchNumberの定義 public static int catchNumber( int calcType,int value) { //総和の計算方式はどれか? if( calcType == 2) { //整数か確認する関数を呼び出す if( isEvenNumber( value) == false) { return 0; } else if( isEvenNumber( value) == true) { return value; } } return value; } //EvenNumberの定義 偶数であればtrue違えばfalseを戻す public static Boolean isEvenNumber( int value) { Boolean result = true; if( value % 2 == 0) { result = true; } else { result = false; } return result; }

}

試したこと

思いつく限りでの試行を試みましたが上手く出来ませんでした。同じ課題をやっている同級生に聞きましたが、同様に進んでいません。
総和の計算が間違っていると予想しています。
どこが間違っているかと、解決方法を教えて下さると助かります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

java

1int value =0;

を追加し、一文を変更

java

1value=catchNumber( caseNum,i);

それと、printlnの位置をforループの外にする

投稿2021/01/21 19:12

編集2021/01/21 19:17
modieu

総合スコア282

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

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

kyohei1999

2021/01/22 10:06

ご返答が遅くなってしまいすみません。 おしえて頂いた通り修正したところ、正しい数値が表示されました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問