我的循环不能正常工作 - java

时间:2015-01-12 21:58:03

标签: java

我创建了一个单独的类方法,该方法是一个简单的循环,允许我输入5个数字,然后将它们返回到数组中,这样我就可以在我的主中调用它们

这是方法:

  public static List<Integer> getJackTicket()
{
    Scanner s = new Scanner(System.in);

    List<Integer> jackTickA = new ArrayList<>();

    for (int i = 1 ; i <= 5; ++i)
    {    
       System.out.print("Number " + i + "");
       int value = Integer.parseInt(s.next()); 
       jackTickA.add(value);
    }
    return jackTickA;
}

这就是我的称呼方式

  System.out.println("Please enter your ticket numbers ");
                JackpotTicket.getJackTicket();
                System.out.println("Your ticket numbers are: " + JackpotTicket.getJackTicket());       

它应该向我询问5个数字,然后在我输入后显示它们,但是它要求我输入数字1到5而不是再次询问我1到5,只显示最后5个。

this is what it showing when i run the program

我在这里做错了什么想法?

6 个答案:

答案 0 :(得分:2)

您正在拨打JackpotTicket.getJackTicket();两次。所以它会执行两次。 删除不在输出中的呼叫。

答案 1 :(得分:2)

您正在调用该方法两次,因此它当然会要求用户两次。

第一次调用它时,请存储返回的List<Integer>,以便稍后再次参考。

System.out.println("Please enter your ticket numbers ");
List<Integer> numbers = JackpotTicket.getJackTicket();
System.out.println("Your ticket numbers are: " + numbers );   

答案 2 :(得分:2)

这是因为您正在调用方法两次

您可能希望将JackpotTicket.getJackTicket();的结果存储在变量中:

List l = JackpotTicket.getJackTicket();

然后,你可以使用它。

记住每次Java找到JackpotTicket.getJackTicket()时,都会执行它。

答案 3 :(得分:2)

您调用了getJackTicket()两次而不是保存其结果并将其重新用于输出:

System.out.println("Please enter your ticket numbers ");
final List<Integer> res = JackpotTicket.getJackTicket();
System.out.println("Your ticket numbers are:");
for(final Integer i : res) {
    System.out.println(i);
}

由于getJackTicket()总是要求用户输入新内容,因此系统会询问您的用户两次,并将第一个结果用于任何内容。


此外,如果您想将结果格式化为一行,这可能很有用:

System.out.println("Please enter your ticket numbers ");
final List<Integer> res = JackpotTicket.getJackTicket();
System.out.print("Your ticket numbers are: ");
for(final Integer i : res) {
    System.out.print(i + " "); // don't add \n to end line
}

答案 4 :(得分:2)

您正在调用您的方法两次,因此它会执行两次。您需要将结果存储在稍后可以输出的变量中:

List<Integer> numbers = JackpotTicket.getJackTicket();
System.out.println("Your ticket numbers are: " + numbers);       

答案 5 :(得分:0)

System.out.println("Please enter your ticket numbers ");
remove this call --> JackpotTicket.getJackTicket();
System.out.println("Your ticket numbers are: " + JackpotTicket.getJackTicket());   

你的最后一次电话应该是:

System.out.println("Please enter your ticket numbers ");
System.out.println("Your ticket numbe`enter code here`rs are: " + JackpotTicket.getJackTicket());