前提・実現したいこと
最近Javaを学び始めた初心者です。ご教授お願い致します。
【問】
変数 int num にシステムから入力値が与えられます。
下記のメソッドを作成してください
メソッドを作成したら、mainにてそのメソッドを呼出し、下記の条件分岐を実装してください。
なお、メソッドの呼び出し時の実引数は、入力値である変数 int num を設定してください。
calculationメソッド
0から数値型の引数までの数値の和を戻り値としてください。
mainメソッドでの条件分岐
戻り値が200以上の場合、「200以上です」と出力。
戻り値が100以上200未満の場合、「100以上200未満です」と出力。
戻り値が100未満の場合、「100未満です」と出力。
戻り値が0以下の場合、「数値が不正です」と出力。
下記のコードで実行して表示されるのは「100未満です 数値が不正です 数値が不正です 数値が不正です」
でした。与えられている数値は「1、18、20、-1」です。
発生している問題・エラーメッセージ
正しい計算がmainメソッドに戻っていないか、 mainメソッド内の式が間違っているのか
該当のソースコード
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String text = scan.next(); int num = Integer.parseInt(text); int total = caluculation(num); //メソッドの呼び出し //caluclarionにtotalに代入 if(total>=200){ System.out.print("200以上です"); //戻り値が200以上の場合、「200以上です」と出力 }else if(100<=total && total>200){ System.out.print("100以上200未満です"); //戻り値が100以上200未満の場合、「100以上200未満です」と出力 }else if(0<total && total<100){ System.out.print("100未満です"); //戻り値が100未満の場合、「100未満です」と出力 }else if(total<0){ System.out.print("数値が不正です"); //戻り値が0以下の場合、「数値が不正です」と出力。 } } static int caluculation(int num){ for(int i=0;i<num;i++){ num =num+i; } return num; } }
試したこと
caliculationメソッド内の式をiを1にしてみたり、numを変えてみたりしましたが改善せず。
上の演算式に間違いがあるのか何度も見直しましたが自分自身では気が付きませんでした。
1時間以上も躓いてしまったのでご教授お願い致します。
補足情報(FW/ツールのバージョンなど)
Java、Windows10を使用しております。質問の意味が違っていたら申し訳ございません
回答5件
あなたの回答
tips
プレビュー