java - 循环键盘输入时出错

标签 java arrays loops object input

我有一个循环,应该将信息存储到对象数组中,但由于某种原因,它总是跳过第一个输入。

public class GerbilData {
public static void main(String[] args){
    Scanner keyboard = new Scanner(System.in);

    System.out.println("How many different food items do the gerbils eat?");

    int n1 = keyboard.nextInt();
    Food[] gerbilFood = new Food[n1];
    String temp;
    int temp2;
    int count = 1;

    for (int a = 0; a < n1; a++){
        gerbilFood[a] = new Food();
    }

    int j = 0;
    while (j < n1){
        System.out.println("Name of food item " + count + ":");
        temp = keyboard.nextLine();
        gerbilFood[j].setName(temp);
        count++;
        j++;
    }

最佳答案

keyboard.nextInt() 仅从键盘读取整数,而不读取返回字符。因此,当您第一次调用 keyboard.nextLine() 时,您将获得 getInt()\n

试试这个:

int n1 = keyboard.nextInt();
keyboard.nextLine();

关于java - 循环键盘输入时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23120490/

相关文章:

java - 获取 BitSet 中集合位的所有 Index

ios - destinationVC 和成员类型的问题

php - PDO 插入引发无法解释的 "Array to string conversion"错误

java - DocumentBuilder.parse() -- 权限被拒绝

java - 无法添加 maven 依赖 - apache poi

c++ - 段错误(核心已转储)- 访问冲突读取位置 x

javascript:无法让 setTimeout 正常工作

java - Android:使用循环用图像 ID 填充数组

c++ - for循环如何在不打印的情况下工作

java - Java String getBytes ISO_8859_1 的 Node.js 等效项