好的,我想要做的就是创建2个类。一个是主类,第二个类是进行循环哨兵控制然后返回它的总数直到用户输入0.我无法使它工作。我不知道如何打电话给另一个班级,因为我对Java很新。这就是我所拥有的。
第1课:
import java.util.*;
public class HW3 {
public static void main(String[] args) {
OrderDetails object = new OrderDetails();
int n;
n = object.OrderDetails(0);
System.out.println(n);
第2课:
import java.util.*;
public class OrderDetails {
Scanner input = new Scanner(System.in);
int total=0;
int n1;
public int OrderDetails(int n1){
while (n1 != 0){
System.out.println("Enter your number");
n1 = input.nextInt();
total += n1;
} // End while loop
return total;
} // End method
答案 0 :(得分:1)
首先
public int OrderDetails(int n1)
您正在使用类的名称作为方法名称,它将工作并运行,但某些IDE会抱怨您使用类的名称作为一种方法,您需要将其更改为构造函数。
object.OrderDetails(0);
现在的问题是你传递的0会破坏while语句,而是传递一个不同的值,比方说-1,所以你会进入while循环并从用户那里得到一些值。
<强>样品:强>
object.OrderDetails(-1); //change the name of your method
答案 1 :(得分:0)
类范围中的n1是实例变量,但方法中的参数n1是局部范围,因此它隐藏了实例变量。此外,该方法的名称与不良实践的类相同。
这都不是问题 - 真正的问题是调用者使用一个值来阻止它进入while循环。如果您使用除零之外的任何其他调用,您将看到它产生所需的结果。