
やさしい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の質問です。テキストファ...
-
Javaのカウント方法について
-
Java int sum = 0は必要ですか?
-
<forEach> 内で供給された "ite...
-
IF関数でEmpty値を設定する方法。
-
JTextAreaのサイズについて
-
eclipseに記述したjavaファイル...
-
excel vba 時間計算と条件分岐...
-
パソコンキーボードで時分秒を...
-
ループ処理の際、最後だけ","を...
-
ジャグ配列とは
-
動的配列が存在(要素が有る)か...
-
javascriptで文字列のsjis利用...
-
VBでbyte配列型のインスタンス...
-
VBAでEUC-JPのHTMLソースを取得...
-
配列をセッションに割り当てた後で
-
Excel VBAで配列の途中から(X)M...
-
『args[]』とは?
-
C言語の変数(LSB)の合わせ込...
-
配列の要素数を超えた参照のコ...
マンスリーランキングこのカテゴリの人気マンスリー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を使って出力
-
ファイルの読み飛ばしが出来ま...
おすすめ情報