変数の宣言エラーを解決しよう

2024.9.25


ゼロスクです。
本記事はこれからプログラミングに挑戦しよう、という方向けの記事となります。
 
今の時代、まずは困ったらAIに頼ろう!という方も多くいるかと思います。

早速、エラー文言を元にChatGPTに質問を投げかけると、以下のような回答が返ってきました。
※今回は学びがメインのため、結果を見やすく補強しております。
  
==AI回答の切り取り Start==
「変数に解決できません」というエラーは、Javaでコンパイルエラーの一種。
次のような要因があります。
 
【1.変数の宣言漏れ】
・変数が宣言されていない、またはスコープ外で使用されている場合にこのエラーが発生します。


public class test {
	public static void main(String[] args) {
		int x = 10;
		System.out.println(y);
	}
}

==AI回答の切り取り End==
  
解説
ここで、例にあるコードを見ると確かに「x」は用意されているが「y」が用意されていない。
「y」が用意されていないにも関わらず、「y」を出力しようとしてコンパイルエラーとして、
「変数に解決できません」が表示されるのは容易に理解が出来ます。
 
解決策としては、「用意された変数」を使うようにしましょう。


public class test {
	public static void main(String[] args) {
		int x = 10;
		//出力しようとしていた「y」を「設定済のx」に修正
		System.out.println(x);
	}
}

【コーディング時のワンポイントアドバイス】
//で挿入するコメント文は、ソースの処理説明などを記載するのに使います。
記載場所は対象ソースの上の行です。
 
しかし、現実では以下のパターンで解決出来ず、頭を悩ます場面があります。


public class test {
	public static void main(String[] args) {
	if(true){
		int x = 10;
	}
	System.out.println(x);
	}
}

上記のコードのように、条件分岐を行った「スコープ( { }の範囲を指しています)」内で変数を宣言した時に、
そのスコープ外で使われると同様のエラーとなります。
 
そう、AIが既に「または」と説明を続けてくれている内容がまさに上記ケースとなりますが、
その例が出力されていないため、「見落として」しまう可能性があります。
※察しのいい方は、この「スコープ外って何だろう?」と更に質問が出来れば、解決に向かえますがそもそも「気づけない」場合は見落としてしまいます。
 
さて、見落としの話をしましたが実際にはAIは以下のように結果を続けてくれます。
 
==AI回答内容の切り取り Start==
2.変数名のスペルミス
3.スコープの問題
4.初期化されていない変数の使用
==AI回答内容の切り取り End==
 
今回は、「たまたま」AIが3つ目の解決案に最初の解決案で省略されていた「スコープの問題」を改めてピックアップして解説が始まろうとしていますね。
勿論、再ピックアップされない可能性もあるため「AIに全てを頼る」と「見落としてしまう」場合があり、コードが複雑になればなるほど見落としが発生しやすくなります。
【AI利用時のワンポイントアドバイス】
AIはさも当たり前のように「No1の内容で解決できる」など言い切る表現をする事がありますが、鵜呑みにすると解決が出来なくなる事も。
間違いを間違いだと見極める能力も、必要になってきます。
 
では、解決策として「変数の設定をスコープの外で設定」するようにしましょう。


public class test {
	public static void main(String[] args) {
	//int xの変数を初期化
	int x = 0;
	if(true){
		//条件分岐を満たした場合、xに10の数値を代入する
		//この時、変数xは設定済なので再び int x = 10 としないように注意する
		x = 10;
	}
	System.out.println(x);
	}
}

基礎知識や経験を積んでいく事で「AIも有用に活用」する事が出来るようになります。
 
しかし「仕事」をする上で「専用のAI」の導入はまだまだ高コストとなり、実現していない世の中です。
 
また、安易にChatGTPでコードの解析を行うと、コード情報が漏れ出るセキュリティ事故に繋がりかねません。
つまり、外部のAIを禁止している企業が多い現実なので、容易に活用する事も出来ません。
そのため、しばらくは個人の知識・経験が重要な場面は続くでしょう。
 
初学者は個人の知識・経験が培われていない状態です。
これからの学習の中で、調査力や書籍を活用する方法も身につける必要があります。
ネットでは公式で提供されているドキュメントから、有識者による様々なハウツー記事やエラー解説も数多く存在しています。
その中から自身の困っている状況にマッチした内容を取捨選択し、応用できるようにしていく能力を身につける事が大事です。
 
ゼロスクでは初めてプログラミングを学び始める方に向けて、
よくあるエラーやその解決方法などのハウツーを今後発信していきたいと思います。
 
スキルアップして正社員雇用を目指すならばゼロスクへ!

=============================================

ゼロスクは受講生を随時募集中です!
あなたからのご応募お待ちしております!

お申し込みはこちらから!

あなたも、ゼロスクで一緒に無料でJavaを勉強しましょう!

■ゼロスクへのお問い合わせ、お申し込みはこちらから!
Javaを0円で学ぼう!ゼロスク
■株式会社ブレーンナレッジシステムズHP
株式会社ブレーンナレッジシステムズ
■note情報はこちら!
【ゼロスク講師によるnote公開中】