【问题标题】:Java Increment issuesJava 增量问题
【发布时间】:2016-10-07 22:00:31
【问题描述】:

在下面的 while 循环中,“+=”下出现语法错误。我去了这里,但答案对我没有帮助。
Cumulative sum of an Array

我只是想打印从服务器流式传输的每个累积总和。

  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();
    }

【问题讨论】:

  • double totalByt += displayByt; 没有意义,因为double totalByt = double totalByt + displayByt; 没有意义。
  • totalByt 需要初始值吗?
  • @justin 谢谢
  • @n00bie1221 在我输入完整回复时,我看到有几个人回答了。但是你现在有一些例子:-)

标签: java sum syntax-error


【解决方案1】:

您应该在循环之前定义和初始化totalByt,并且只在循环中添加它,而不是尝试重新定义它:

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

【讨论】:

  • 非常感谢,我总是忘记
【解决方案2】:

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);
}

【讨论】:

  • 谢谢,我知道这很简单
【解决方案3】:

我认为这里唯一的问题是您的 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");
}

【讨论】:

    【解决方案4】:

    初始化totalByte。这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      相关资源
      最近更新 更多