
やさしい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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java final 1 2022/06/10 22:49
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルにおいて任意...
-
eclipseでmysqlからテーブル情...
-
javaのfor文が機能してないみた...
-
値出力の条件
-
以下のJAVAプログラムでご質問...
-
Javaでデータに登録する度にID...
-
csv出力について
-
ファイルの読み飛ばしが出来ま...
-
グローバルな(?)IPアドレスの...
-
FileクラスのcanRead/canWrite...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
javaで質問です。 文字列2023/2...
-
一定のスペースを空けて端を揃...
-
ループ処理の際、最後だけ","を...
-
EXCEL VBA で、0から?1から?
-
論理演算子”||”またはの入力方法
-
eclipseに記述したjavaファイル...
-
動的配列が存在(要素が有る)か...
-
JSPやサーブレットでSystem.out...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
テキストファイルから空白行をよむ
-
InputStream.read()でタイムア...
-
九九を横に表示する。
-
equalsの逆
-
Java int sum = 0は必要ですか?
-
csv出力について
-
BufferedReaderでのエラー
-
テキストファイルにおいて任意...
-
FileクラスのcanRead/canWrite...
-
[JAVA]エラーが解決できません。
-
Javaの質問です。テキストファ...
-
テキストファイルの任意の文字...
-
JAVAで、SSL通信
-
Class.forNameでエラーになる
-
javaのファイル読み込み時の文...
-
JAVAでエラーがでる。
-
Web上に表示されたデータをcsv...
-
java連結
-
linuxでapache poiが動かない。
おすすめ情報