前提・実現したいこと
Javaを勉強中です。
以下の問題について、マイナスの入力値を入れた場合でも正の値として認識されているようです。
作成したコードについて、どこを直せば正しい結果が得られるのかアドバイスをいただきたいです。
よろしくお願いいたします。
変数 int num にシステムから入力値が与えられます。
下記のメソッドを作成してください。
メソッドを作成したら、mainにてそのメソッドを呼出し、下記の条件分岐を実装してください。
なお、メソッドの呼び出し時の実引数は、入力値である変数 int num を設定してください。
calculationメソッド
0から数値型の引数までの数値の和を戻り値としてください。
mainメソッドでの条件分岐
戻り値が200以上の場合、「200以上です」と出力。
戻り値が100以上200未満の場合、「100以上200未満です」と出力。
戻り値が100未満の場合、「100未満です」と出力。
戻り値が0以下の場合、「数値が不正です」と出力。
01
入力値 1
期待値 100未満です
02
入力値 18
期待値 100以上200未満です
03
入力値 20
期待値 200以上です
04
入力値 -1
期待値 数値が不正です
発生している問題・エラーメッセージ
【出力結果】 100未満です 100以上200未満です 200以上です 100未満です
該当のソースコード
Java
1import java.util.Scanner; 2public class Main { 3 public static void main(String[] args) { 4 Scanner scan = new Scanner(System.in); 5 String text = scan.next(); 6 int num = Integer.parseInt(text); 7 int total = calculation(num); 8 9 if(total >= 200){ 10 System.out.print("200以上です"); 11 }else if(total >=100 && total < 200){ 12 System.out.print("100以上200未満です"); 13 }else if(total < 100){ 14 System.out.print("100未満です"); 15 }else if(total < 0){ 16 System.out.print("数値が不正です"); 17 } 18 } 19 20 public static int calculation(int num){ 21 int sum = 0; 22 for(int i=0;i<=num;i++){ 23 sum += i; 24 } 25 return sum; 26 } 27}
試したこと
−1から0にいくまでに+1されているから「100未満です」という結果が出ているのだと思うのですが、、
どこを直したら良いのかわからず詰まってしまいました。
回答2件
あなたの回答
tips
プレビュー