-1

感谢所有帮助人员,但现在问题的性质已经改变,使用 Patrick 的建议,下面的循环正在运行,但它似乎没有将输入存储到相应的数组中,数据不断替换到 ArrayLists 中,而不是进入下一个位置ArrayList 有什么建议吗?

  import java.util.ArrayList;
import java.util.Scanner;
public class Arrray {
    public static void main(String [] args){

        ArrayList<String> names;
        ArrayList<String> addr;


        do {
            names = new ArrayList<String>();
            addr = new ArrayList<String>();
            Scanner userInput = new Scanner(System.in);
            System.out.println("Name and Adreess are: " + names.size() + "**"
                    + addr.size());
            System.out.println("please Enter Your Name :");
            names.add(userInput.next());
            System.out.println("please enter your Address  :");
            addr.add(userInput.next());

            System.out.println("Do you want to add another entry? :(y/n)" );
            String ans =userInput.next();  // get the value from the user using scanner class
            if(ans.equals("n") || ans.equals("N"))
                break;

        } while (true);
        int n = names.size();
        int a = addr.size();
        for(int i =0; i<n && i<a; i++ )
            System.out.println("Name and address are as below:  "+ names.get(i)+"**"+ addr.get(i));




    }

}
4

5 回答 5

1

将 awhile(true)break 语句结合使用:

do {
    if(input.next() == 'n'){
        break;
    }
} while(true);
于 2011-12-09T12:55:14.793 回答
0

尝试捕获此用户的输入

System.out.println("Do you want to add another entry? :(y/n)");

并在一段时间内使用该信息。

于 2011-12-09T12:52:33.880 回答
0

导入 java.util.ArrayList;导入 java.util.Scanner;

公共类数组{

public static void main(String[] args) {

    ArrayList<String> name = new ArrayList<String>();
    ArrayList<Integer> phone = new ArrayList<Integer>();
    Scanner scanner = new Scanner(System.in);
    String answer = "";
    do {
        System.out.println("Please enter your name: ");
        name.add(scanner.next());
        System.out.println("Please enter your number: ");
        phone.add(scanner.nextInt());
        System.out.println("Do you want to add a directory y/n?");
        answer = scanner.next();
    } while (answer.equals("y") || answer.equals("Y"));
    if (answer.equals("y") || answer.equals("Y")); //want it to go back to start another direcotry here
    else {
        System.out.println("Thanks for adding to the directory");
        for (int i = 0; i < name.size(); i++) {
            System.out.print(name.get(i) + "\t");
            System.out.print(phone.get(i));
            System.out.println("");
        }
    }
}

}

于 2013-05-30T20:32:47.173 回答
0

从用户那里获取价值,如果用户输入 n 则中断,否则什么都没有

System.out.println("Do you want to add another entry? :(y/n)" );
String ans = .... // get the value from the user using scanner class
if(ans.equalsIgnoreCase("n"))
     break;
于 2011-12-09T12:56:09.610 回答
0

你必须做这样的事情:

String choice = "";
do {
    .
    .
    .
    .
    System.out.println("Do you want to add another entry? :(y/n)" );
    choice = userInput.next();
} while (!(choice.equals("n") || choice.equals("N")));

线

choice = userInput.next();

将读取用户输入,以及用于比较输入的 Stringclassesequals方法。循环将继续,直到选择为Nn

于 2011-12-09T13:17:33.460 回答