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

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

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

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

Q&A

2回答

5670閲覧

変数に解決できませんというエラー

Ken8

総合スコア10

Java

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

1グッド

0クリップ

投稿2020/03/14 12:02

java超初心者です。
変数 level,nameにおいて変数に解決できませんというエラーが出ます。eclipseを使っています。

<コード>
public class Hello{

public static void main(String[] args) { String name = "Kenzo"; int level = 20; // TODO 自動生成されたメソッド・スタブ System.out.println("Hello World!"); System.out.println("I am Kenzo"); for (int number = 1; number <= 100; number++) { System.out.println(number); } for(int number = 1; number<10; number++) { System.out.println(number+"回目です"); } //1から10までの和を求める int sum = 0; for (int number = 1; number <= 10; number++) { sum += number; } System.out.println(sum); putjyoshou(); System.out.println(name+"は魔王を倒した"); if (level<30) { System.out.println("レベルがカスすぎて"+name+"は負けました"); System.out.println("GAME OVER"); }else { if (level < 50) { System.out.println("レベル"+level+"だったので倒せました!"); }else if(level < 40) { System.out.println("レベル"+level+"だったので苦戦しました"); }else { System.out.println("レベル"+level+"だったので倒せませんでした"); } System.out.println("GAME CLEAR!!"); } } static void putjyoshou() { System.out.println("魔王が世界を滅ぼそうとしています!"); System.out.println(name+"はレベル"+level+"のつわものです!"); }

}

s.k👍を押しています

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

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

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

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

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

guest

回答2

0

Java

1public class Hello{ 2 3 static String name = "Kenzo"; 4 static int level = 20; 5 6 public static void main(String[] args) {

static を付けたくなかったら、

Java

1public class Hello{ 2 3 String name = "Kenzo"; 4 int level = 20; 5 6 public static void main(String[] args) { 7 new Hello(); // Hello のインスタンスを作ると、name と level ができる。 8 } 9 10 Hello() { // コンストラクタ 11 // TODO 自動生成されたメソッド・スタブ 12 System.out.println("Hello World!"); 13 /* ここに元の main の処理 */ 14 } 15 16 void putjyoshou() // static をはずす 17 { 18 System.out.println("魔王が世界を滅ぼそうとしています!"); 19 System.out.println(name+"はレベル"+level+"のつわものです!"); 20 } 21}

投稿2020/03/14 13:59

kazuma-s

総合スコア8224

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

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

0

変数は宣言したブロック{}の中でしか有効ではありません

putjyoshou関数でname、level変数を使うなら、これらの変数を関数の外で定義しましょう

投稿2020/03/14 12:10

y_waiwai

総合スコア88042

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

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

Ken8

2020/03/14 12:14 編集

static void putjyoshou() { String name = "Kenzo"; //追加 int level = 20; //追加 System.out.println("魔王が世界を滅ぼそうとしています!"); System.out.println(name+"はレベル"+level+"のつわものです!"); } このような感じにすれば良いのでしょうか? 度々すいません
shiketa

2020/03/14 12:23 編集

表示したい内容がそれでいいのであれば、それでもいいんじゃないですか。 も、し、も、main()メソッドで定義したlevelの内容を表示したいのであれば、putjyoshou()メソッドに、引数として渡す、という手もありますよ。
y_waiwai

2020/03/14 12:40

そもそものエラーの原因はmain関数の中で定義してる変数は関数の中だけしか有効ではありません。 なので、putjyoshouの中の変数は未定義となります そして、putjyoshou関数の中で同名の変数を定義しても、それはmain関数の変数とは別物になります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問