for循环在java中跳转输入

时间:2018-05-31 12:25:14

标签: java eclipse

这是一个以输入5名称和5个电话号码给出的程序,在输出中给出了按字母顺序排列的名称。 问题是,当我输入第一个名字和第一个号码时,程序跳转到第二个“电话号码输入”而不让我插入第二个名字。 我希望这是有道理的。

我也不介意任何使分类更容易的建议。

这是代码:

import java.util.Arrays;
import java.util.Scanner;

public class RubricaTelefonica {

public static void main(String[] args) {

    String names[] = new String[5];
    long phone_num[] = new long[5];
    Scanner sc = new Scanner(System.in);

    for(int i = 0; i < 5; i++) {
        System.out.println("Inserisci il nome:");
        names[i] = sc.nextLine();
        System.out.println("Inserisci il numero di telefono:");
        phone_num[i] = sc.nextLong();
    }
    sc.close();

    String names_unsorted[] = names;
    Arrays.sort(names);
    long sorted_num[] = new long[5];

    for(int a = 0; a < 5; a++) {
        //sorted cicle
        for(int b = 0; b < 5; b++) {
            //unsorted cicle
            if(names[a] == names_unsorted[b]) {
                sorted_num[a] = phone_num[b];
            }
        }
    }

}

}

1 个答案:

答案 0 :(得分:0)

你误解了nextLong();它只是读取long值,然后即将到来的nextLine()由控制台中的新行条目触发。

在nextLong()调用之后放一个sc.nextLine(),或者更好的是用nextLine()读取电话号码为String,然后从中解析一个长号。