前提・実現したいこと
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; }
}
試したこと
思いつく限りでの試行を試みましたが上手く出来ませんでした。同じ課題をやっている同級生に聞きましたが、同様に進んでいません。
総和の計算が間違っていると予想しています。
どこが間違っているかと、解決方法を教えて下さると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/22 10:06