-4

好的,所以我想做的是创建 2 个类。一个是主类,第二个是做一个循环哨兵控制,然后返回它的总数,直到用户输入0。我无法让它工作。我不知道如何调用其他类,因为我对 Java 很陌生。这就是我所拥有的。

第一类:

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
4

2 回答 2

1

首先

public int OrderDetails(int n1)

您使用类的名称作为方法名称,它将工作并运行,但某些 IDE 会抱怨您使用类的名称作为方法,您需要将其更改为构造函数。

object.OrderDetails(0);

现在的问题是您传递的 0 会破坏 while 语句,而是传递一个不同的值,比如说 -1,因此您将进入 while 循环并从用户那里获取一些值。

样本:

object.OrderDetails(-1); //change the name of your method
于 2014-07-28T05:50:19.470 回答
0

类作用域中的 n1 是实例变量,而方法中的参数 n1 是局部作用域,所以它隐藏了实例变量。此外,该方法的名称与类的名称相同,这是不好的做法。

这些都不是问题 - 真正的问题是调用者正在调用一个会阻止它进入 while 循环的值。如果你调用的不是零,你会看到它产生了想要的结果。

于 2014-07-28T05:51:59.683 回答