2016-10-07 3 views
1

В моем цикле while ниже появляется синтаксическая ошибка в разделе «+ =». Я пошел сюда, но ответ мне не помог.
Cumulative sum of an ArrayПроблемы с добавлением Java

Я просто пытаюсь напечатать каждую совокупную сумму, которая передается с сервера.

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 до вашего цикла. Увеличьте его в цикле. И дисплей с System.out.println вместо двух вызовов print. Мол,

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"); 
} 
Смежные вопросы