
やさしいJavaという本を買ったのですが、良くわからない箇所がありました。
--------------省略-----------------
class Sample6
{
public static void main(String[] args) throws IOException
{
System.out.println("整数を3つ入力してください。") ;
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in)) ;
String str1 = br.readLine() ;
String str2 = br.readLine() ;
String str3 = br.readLine() ;
int sum = 0 ;
sum += Integer.parseInt(str1) ;
-------------------略-----------------
int sum = 0 ; とありますが、0と設定しておく必要はありますか?
無いとまずいですか? いきなりこのコードが出てきたと思うのですが
どこかに書いてましたっけ?
No.2ベストアンサー
- 回答日時:
int sum ;
とだけある場合、このローカル変数sumは初期化されていません。
他の言語には、sum=0 に必ず初期化される、というものもありますが、Javaでは、そうではありません。
そして、初期化されていない変数を参照することができません。エラーになります。
sum += Integer.parseInt(str1) ;
とあるので、ここで、まず、sumの現在の値が参照され、それと Integer.parseInt(str1) が足し算され、 sum に格納されます。
初期化されていなければ、この「参照」ができないのでエラーになります。
No.1
- 回答日時:
>sum += Integer.parseInt(str1) ;
この処理が内部的に以下の処理を行なっています。
>sum = sum + Integer.parseInt(str1) ;
右辺にsumを使用しているので、使用前には
> sum = 0 ;
と設定する必要があります。
逆に以下の場合なら、0を設定する必要はありません。
>sum = Integer.parseInt(str1) ;
この回答への補足
>右辺にsumを使用しているので、使用前には
>> sum = 0 ;
>と設定する必要があります。
設定しなければ駄目ですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaのfor文が機能してないみた...
-
yyyymmddからyyyy/mm/d...
-
InputStream.skipメソッドについて
-
Javaの質問です。テキストファ...
-
テキストファイルにおいて任意...
-
Javaでデータに登録する度にID...
-
javaからffmpegの利用
-
テキストファイルから空白行をよむ
-
javaのファイル読み込み時の文...
-
System.err. printlnとSystem.o...
-
java キーボード入力された値の...
-
動的配列が存在(要素が有る)か...
-
System.out.printlnの出力先
-
オブジェクトの中のプロパティ...
-
javaで質問です。 文字列2023/2...
-
ループ処理の際、最後だけ","を...
-
C言語のポインターに関する警告
-
EXCEL VBA で、0から?1から?
-
getStringの値がNULLの時の処理
-
<forEach> 内で供給された "ite...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
csv出力について
-
Javaでデータに登録する度にID...
-
[JAVA]エラーが解決できません。
-
Class.forNameでエラーになる
-
Java int sum = 0は必要ですか?
-
Javaの質問です。テキストファ...
-
javaプログラミングの質問です。
-
equalsの逆
-
ファイル読込みにおける改行表...
-
九九を横に表示する。
-
Servletでテキストボックスに入...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
テキストファイルから空白行をよむ
-
文字列について(続き)
-
javaのfor文が機能してないみた...
-
Pleiades4.4でVectorの使用
-
printfを使って出力
-
ファイルの読み飛ばしが出来ま...
おすすめ情報