2016-10-07 21 views
1

以下のwhileループでは、「+ =」の下に構文エラーが表示されます。私はここに行ったが、答えは私を助けなかった。
Cumulative sum of an ArrayJavaインクリメントの問題

私は、サーバーからストリーミングされている各累積合計を印刷しようとしています。

public static void main(String[] args) { 

    try 
    { 
     //Create client socket, connect to server 
     Socket clientSocket = new Socket("localhost",9999); 
     //create output stream attached to socket 
     PrintStream outToServer = new PrintStream(clientSocket.getOutputStream()); 

     System.out.print("Command : "); 
     //create input stream 
     InputStreamReader inFromUser = new InputStreamReader(System.in); 
     BufferedReader ed = new BufferedReader(inFromUser); 

     String temp = ed.readLine(); 

     outToServer.println(temp); 
     //create input stream attached to socket 
     BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 

     String display=null; 
     while((display = inFromServer.readLine())!=null){ 
     int displayByt = Integer.valueOf(display); 
     double totalByt += displayByt;//SYNTAX ERROR "+=" 
      //totalByt = totalByt + displayByt; Does not Work either 
     System.out.print(totalByt); 
     System.out.print("\n"); 
     } 
     clientSocket.close(); 
    } 
+1

'double totalByt + = displayByt;'は意味がありません。なぜなら 'double totalByt = double totalByt + displayByt;'は意味をなさないからです。 – tkausl

+2

'totalByt'は初期値が必要ですか? –

+0

@justinありがとうございました – n00bie1221

答えて

1

あなたは定義して初期化ループの前にtotalBytを、とだけそれを再定義しようとすると、ループ内でそれにはない追加する必要があります

double totalByt = 0.0; // Defined and initialized here 
while ((display = inFromServer.readLine()) != null) { 
    int displayByt = Integer.valueOf(display); 
    totalByt += displayByt; // Used here 
} 
+0

ありがとう、私はいつも忘れて – n00bie1221

0
あなたのループの前に totalByt宣言初期化を移動し

。それをループでインクリメントします。 printを2回コールするのではなく、System.out.printlnで表示します。同様に、

double totalByt = 0; // <-- declare and set to 0. 
while((display = inFromServer.readLine())!=null){ 
    int displayByt = Integer.valueOf(display); 
    totalByt += displayByt; 
    System.out.println(totalByt); 
} 
+0

ありがとう、私はそれが何か単純だったことを知っていた – n00bie1221

0

私はここでの唯一の問題は、あなたのことだと思いますtotalByt変数には初期値が必要です。基本的にあなたのコードが書かれている方法で、あなたは整数に何も追加しようとしていません。

String display=null; 
double totalByt = 0; 
while((display = inFromServer.readLine())!=null){ 

    int displayByt = Integer.valueOf(display); 
    totalByt += displayByt; 

    System.out.print(totalByt); 
    System.out.print("\n"); 
} 
0

初期化totalByt:

はこれを試してみてください。それは問題を解決するはずです。