我目前正在创建一个程序并存储数据,我遇到了一个问题,即它打印出一个语句两次并将其计算为数组中的两个(很难解释如此恶意显示)
所以这是代码
public static void GetData()
{
Scanner input = new Scanner(System.in);
System.out.println("How many names do you want to enter?");
int num = input.nextInt();
int array[] = new int[num];
for (int i = 0 ; i < array.length ; i++ )
{
String[] names = new String[num];
System.out.println("enter employee's name: ");
names[i] = input.nextLine();
}
for(int j = 0; j < array.length;j++)
{
double[] payrate = new double[num];
System.out.println("enter employee's payrate: ");
payrate[j] = input.nextDouble();
}
}
}
问题在于打印出来:
How many names do you want to enter?
4
enter employee's name:
enter employee's name:
harry
enter employee's name:
larry
enter employee's name:
mary
enter employee's payrate:
立即两次,所以当用户声明让我们说数组大小为4时,它会打印两次并且它会计算为两个点已经如此现在它只计算3个数据并切换到下一个数组,老实说,我不确定是什么引起了这种情况,我试着调试它,但它没有告诉我什么,任何帮助都会被爱!
答案 0 :(得分:0)
第一个names[i] = input.nextLine();
将从包含您使用\n
读取的数字的行中读取input.nextInt()
,因此您将在那里获得一个空名称。
您可以按如下方式阅读num
:
String strNum = input.nextLine();
int num = Integer.parseInt(strNum);