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

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

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

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

Q&A

2回答

1382閲覧

引数と戻り値(Java)

mayugee228

総合スコア2

Java

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

0グッド

1クリップ

投稿2021/05/16 09:36

編集2021/05/16 09:58

「問題文」
変数 int num にシステムから入力値が与えらる。

メソッドを作成し、

mainにてそのメソッドを呼出し、下記の条件分岐を実装する。

なお、メソッドの呼び出し時の実引数は、入力値である変数 int num を設定する。

①calculationメソッド
数値型の引数に15を乗算した結果を戻り値とする。

②mainメソッドでの条件分岐
戻り値が200以上の場合、「200以上です」と出力。

戻り値が100以上200未満の場合、「100以上200未満です」と出力

戻り値が100未満の場合、「100未満です」と出力

「何をしたいのか」
nt numを用いて条件分岐を実装したい。
わかる方がいらっしゃれば、ご教示のほどよろしくお願いいたします。

コード↓

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 = calculation(num);

if(calculation(num) >= 200){ System.out.println("200以上です"); }else if(calculation(num) >= 100 && calculation() <= 200) { System.out.println("100以上200未満です"); } else if (calculation(num) <= 100){ System.out.println("100未満です"); }

}
static int calculation(){

return num* 15; }

}

「エラー文」

Main.java:7: error: method calculation in class Main cannot be applied to given types;
int total = calculation(num);
^
required: no arguments
found: int
reason: actual and formal argument lists differ in length
Main.java:10: error: method calculation in class Main cannot be applied to given types;
if(calculation(num) >= 200){
^
required: no arguments
found: int
reason: actual and formal argument lists differ in length
Main.java:13: error: method calculation in class Main cannot be applied to given types;
}else if(calculation(num) >= 100 && calculation() <= 200) {
^
required: no arguments
found: int
reason: actual and formal argument lists differ in length
Main.java:18: error: method calculation in class Main cannot be applied to given types;
} else if (calculation(num) <= 100){
^
required: no arguments
found: int
reason: actual and formal argument lists differ in length
Main.java:25: error: cannot find symbol
return num* 15;
^
symbol: variable num
location: class Main

5 errors

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

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

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

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

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

y_waiwai

2021/05/16 09:39

で、しつもんはなんでしょうか
mayugee228

2021/05/16 09:45

エラーになるのですがどこが間違っているのか、原因がわからず教えていただきたいです
y_waiwai

2021/05/16 09:46

エラーになるならそれを提示しましょうよ
dodox86

2021/05/16 10:02

件名は「引数と戻り値(Java)」、質問文中は「nt numを用いて条件分岐を実装したい。」、本欄では「エラーになるのですがどこが間違っているのか」 バラバラです。
momon-ga

2021/05/16 11:17

static int calculation() メソッドで使われるnumはstaticフィールドを用意する想定でしょうか? それとも引数で受け取る想定でしょうか?(引数は実際は書いてないですが)
guest

回答2

0

java

1/*1*/import java.util.Scanner; 2/*2*/public class Main { 3/*3*/public static void main(String[] args) { 4/*4*/Scanner scan = new Scanner(System.in); 5/*5*/String text = scan.next(); 6/*6*/int num = Integer.parseInt(text); 7/*7*/int total = calculation(num); 8 9/*8*/if(calculation(num) >= 200){ 10/*9*/System.out.println("200以上です"); 11 12/*10*/}else if(calculation(num) >= 100 && calculation() <= 200) { 13/*11*/System.out.println("100以上200未満です"); 14 15/*12*/} else if (calculation(num) <= 100){ 16/*13*/System.out.println("100未満です"); 17/*14*/} 18/*15*/} 19/*16*/static int calculation(){ 20 21/*17*/return num* 15; 22/*18*/} 23/*19*/}

6行目のnumはmainメソッドでしか扱えない変数です.
そのため、calculationメソッドでも扱えるようにするためには、メンバ変数ではなく、
クラス変数にしてあげる必要があります(変数のことについては、自分で調べてください)
そのほかの手段として、calculationメソッドの引数にint numと追記してあげるか.

あと、変数totalは、一度も使用していないみたいですが、紛らわしいので
使わない変数は書かない方がいいかと思います

投稿2021/05/19 01:56

ttakuya

総合スコア2

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

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

0

calculationメソッドは何の引数も受け付けるようになっていませんが、呼び出し元は全て何かしら引数を渡しています。そしてcalculationメソッドでは未定義の変数が処理に使われています。
定義の整合性が取れていません。

投稿2021/05/16 11:18

編集2021/05/16 11:19
m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問