みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

java 戻り値についての質問です。

 戻り値を使ったプログラムを作成したところエラーが出たのですが、どこを修正しなければならないのかわかりません。


[プログラム]
public class Main31{
public static int add(int x, int y){
int ans = x + y;
return ans;
}

public static void main(String[] args){
int ans = add(100 , 10);
System.out.println(x +"+"+y+"="+ans);
}
}

[エラーの内容]
Main31.java:12: エラー: シンボルを見つけられません
System.out.println(x +"+"+y+"="+ans);
    ^
シンボル: 変数 x
場所: クラス Main31
Main31.java:12: エラー: シンボルを見つけられません
System.out.println(x +"+"+y+"="+ans);
     ^
シンボル: 変数 y
場所: クラス Main31
エラー2個


どこを直せば良いのかと、このプログラムだとエラーが出てしまう理由を教えてください。よろしくお願いいたします。

投稿日時 - 2017-10-14 14:19:28

QNo.9385787

困ってます

質問者が選んだベストアンサー

System.out.println を実行しているmain関数内で変数 x と y を定義していないのが問題かと思います。
int ans = add(100 , 10);
の部分を
int x = 100;
int y = 10;
int ans = add(x , y);
にすればいいんじゃないでしょうか。

投稿日時 - 2017-10-14 14:31:59

お礼

ご回答ありがとうございます。この通りに修正しましたところ、きちんと実行されました。ありがとうございました!

投稿日時 - 2017-10-14 16:01:13

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

戻り値は関係ありません。
変数のスコープルールは理解されていますか?
mainメソッドにとっての変数xとyの定義はどこにありますか?

投稿日時 - 2017-10-14 14:28:34

補足

addメソッドでadd(int x, int y)を定義しているので、
mainメソッド内でint ans = add(100, 10);
とすれば、
int x = 100;
int y = 10;
が自動で定義されるものだと勘違いしておりました。

投稿日時 - 2017-10-14 15:59:32

お礼

ご回答ありがとうございます。スコープルールについてわかっているつもりでしたが理解が足りなかったようです。今一度確認してみます。ありがとうございました!

投稿日時 - 2017-10-14 15:59:34

あなたにオススメの質問