Java代码返回值是否正确?

Java代码返回值是否正确?,java,Java,我的问题是关于增量的,我想问的是,如何从假设在每个值中设置的do while循环返回数据 do while循环中的totalSales应该有数据集,当它从循环中出来时,它不会将数据保存到totalSales或totalItems值中 // The system print out values are empty. System.out.printf(salesID + " you entered a total of: " + totalItems + "With a total

我的问题是关于增量的,我想问的是,如何从假设在每个值中设置的do while循环返回数据

do while循环中的totalSales应该有数据集,当它从循环中出来时,它不会将数据保存到totalSales或totalItems值中

// The system print out values are empty.
      System.out.printf(salesID + " you entered a total of: " + totalItems + "With a total sales of $%15.2f" + totalSales); 
我试图从奇怪的do while或if语句循环返回数据,但它不会返回我设置的项为什么

// yesno to n for first loop through.

do {
      System.out.println("Welcome Sales ID: " + salesID + " please enter the samsung TV sold: \n");
      samsungProduct = scanValue.next();
      System.out.println("Please enter your total TV sales amounts individually for today \n");
      singleSale = scanValue.nextDouble();
      totalSales = totalSales + singleSale;
      totalItems = totalItems++;
      System.out.println("Do you want to enter another sales total(Y/N): \n ");
      yesNo = scanValue.next();

}        while (!yesNo.equalsIgnoreCase("N"));

// get the items set inside of the do while loop.

// The system print out values are empty.
      System.out.printf(salesID + " you entered a total of: " + totalItems + "With a total sales         of  $%15.2f" + totalSales); 
totalItems=totalItems++;这是一个无所事事的行动

请看这里:

应该是

System.out.printf(salesID + " you entered a total of: " + totalItems 
       + "With a total sales of $%15.2f", totalSales);
                                       ^^^^
这就是你的问题:totalItems=totalItems++

在这行代码之后,totalItems的值不会更改

使用totalItems++;反而

问题是i++增加i,但返回旧值。因此,当您执行i=i++时,您将旧值赋给i-因此i保持不变。

这是错误的:

totalItems = totalItems++;
你应该这样做

totalItems++;
你所做的等于:

int temp = totalItems;
totalItems = totalItems + 1;// (totalItems++)
totalItems = temp;

我看不出您的循环有任何明显的错误,但在创建了适当的变量后运行它会导致此异常:

Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '15.2f' at java.util.Formatter.format(Formatter.java:2432) at java.io.PrintStream.format(PrintStream.java:920) at java.io.PrintStream.printf(PrintStream.java:821) at ScratchMain.main(ScratchMain.java:26)
此外,还有代码totalItems=totalItems++;在那里,这实际上是一个无操作,即它什么也不做。将其替换为totalItems++;或totalItems=totalItems+1;如果你想让它显式化。

奇怪的while或if语句循环?请解释您的期望、实际发生的情况以及它们之间的区别。@Wendell-totalItems=totalItems++;这完全是多余的。只需要一个项目;够了。@Mehesh-这并不是多余的,它也不会按照作者的意思去做。它将把totalItems设置为它的原始值;等于totalItems=totalItems+1;。所以totalItems=totalItems++;这是不必要的。totalItems++;足够了。不断地惊讶有多少人写x=x++;事实上这不是问题,问题是singleSale=scanValue.nextDouble;我只是希望这样的值在退出循环时保持不变。当它到达do while循环外部的System.out.println时,我将丢失循环内部的所有设置值。所以,一切都设置为零,这让我抓狂:scanValue.nextDouble;我只是希望这样的值在退出循环时保持不变。当它到达do while循环外部的System.out.println时,我将丢失循环内部的所有设置值。所以,一切都设置为零,这让我抓狂:@RMT-谢谢,但实际上这是Josh Bloch的例子,我只是找不到参考。。。 Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '15.2f' at java.util.Formatter.format(Formatter.java:2432) at java.io.PrintStream.format(PrintStream.java:920) at java.io.PrintStream.printf(PrintStream.java:821) at ScratchMain.main(ScratchMain.java:26)
System.out.printf(salesID + " you entered a total of: " + totalItems + "With a total sales         of  $%15.2f", totalSales);