我有一个程序打印存储在arraylist中的对象的实例变量。 我想为这个程序添加一个功能,所以它只打印前10个对象的实例变量,然后让用户按Enter继续,然后继续接下来的10个对象,依此类推。
这是一个如何在没有我要求的功能的情况下打印循环的示例:
for (int i = 0; i < myList.size(); i++)
{
System.out.println(myList.get(i).getName();
}
&#34;按Enter继续&#34;部分很容易:
import java.util.*;
...
Scanner input = new Scanner(System.in);
input.nextLine()
但是如何创建一个条件循环,在10次打印后停止,然后在&#34之后恢复;按Enter继续&#34;事件??
答案 0 :(得分:3)
for (int i = 0; i < myList.size(); i++)
{
System.out.println(myList.get(i).getName();
if(i % 10 == 0){
input.nextLine()
}
}
答案 1 :(得分:2)
您可以使用System.in.read()
,它会读取一个字符,因此当用户按任意键时,它会继续。
其他明智的等待用户输入。
for (int i = 0; i < myList.size(); i++)
{
System.out.println(myList.get(i).getName();
if(i % 10 == 0){
System.out.println("Press any key to continue!");
char ch = (char) System.in.read();
}
}
答案 2 :(得分:1)
试试这段代码:
for(int index = 0; i <myList.size(); i++){
/*check if it has printed 10 times first or else, it'll be printed 11 times first*/
if( i % 10 == 0 && i!=0 ){
System.out.println("Press enter to continue...");
//Prompt the user of course...
input.nextLine();
}
System.out.println(myList.get(i).getName());
}
如上面代码中所述,您需要检查它是否先打印10次。 @ bmscomp的代码如果有超过10个条目可能有错误。
答案 3 :(得分:0)
我决定采用自己的方法。 我希望我可以给每个人一个答案,因为我的建议是他们所有人的组合:
for (int i = 0; i < myList.size(); i++)
{
if(i % 10 == 0 && i != 0){
System.out.println("Press enter to continue...");
input.nextLine();
}
System.out.println(myList.get(i).getName());
}
将打印放在if语句之外更有意义。 现在它第一次正确打印10个语句而不是11个。
答案 4 :(得分:-1)
我相信您可以更好地了解接收用户输入时应采取的措施。 请尝试以下方法: - `
import java.util.Scanner;
public class GetInputFromUser {
public static void main(String args[]) {
int a;
float b;
String s;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
s = in.nextLine();
System.out.println("You entered string " + s);
System.out.println("Enter an integer");
a = in.nextInt();
System.out.println("You entered integer " + a);
System.out.println("Enter a float");
b = in.nextFloat();
System.out.println("You entered float " + b);
}
}