gpt4 book ai didi

java - 在没有任何 nextLine 的情况下跳过 nextInt - Java

转载 作者:行者123 更新时间:2023-11-30 03:33:17 25 4
gpt4 key购买 nike

即使我不关心 nextLine() 方法,这些代码行也会带来问题。我仍然不明白为什么。我检查了代码的其他部分,并在我怀疑的地方提出了这部分。

    int value;
int capacity;
int choice;
int testValue;
int index;
ArrayList<IntBag> bags = new ArrayList<IntBag>();

choice = 0;
testValue = 0;

Scanner scan = new Scanner( System.in );

while( choice != 9 )
{
value = 0;
index = 0;
System.out.println( "\n*********\n1.Create a new empty collection"
+ " with a specified maximum capacity\n2.Read a set "
+ "of positive values into the collection\n3.Print the"
+ " collection of values.\n4.Add a value to the collection"
+ " of values at a specified locaiton\n5.Remove the value at"
+ " a specified location from the collection of values\n6.Read "
+ "a single test value.\n7.Compute the set of locations of the "
+ "test value within the collection\n8.Print the set of locations."
+ "\n9.Quit the program.");
System.out.print( "\nChoice: " );
choice = scan.nextInt();

if( choice == 1 )
{
System.out.print( "\nPlease enter the capacity: " );
capacity = scan.nextInt();
if( capacity > 0 )
{
bags.add( new IntBag( capacity ) );
System.out.println( "\nCollection has successfully created!" );
}
else
System.out.println( "\nInvalid capacity!");
}
if( !bags.isEmpty() )
{
if( choice == 2 )
{
int input;
System.out.print( "\nPlease enter the value you want to assign(use 0 to finish): " );

for( int i = 0; i < bags.get(0).size(); i++ )
{
input = scan.nextInt();
if( input != 0 )
{
System.out.println( i + ": " );
bags.get(0).add( input );
}
else
break;
}

它实际上应该寻找 0 以外的任何输入(0 终止它),但是,甚至还没有接近那个点,这个问题就开始发生。

注意:bags 只是一个 ArrayList 对象,它具有我编写的类的泛型类型。它基本上代表了一个整数数组,我认为它不构成这个问题的任何内容。

编辑:它跳过 for 循环中的最后一个 input = scan.nextInt(); 行。

谢谢!

最佳答案

您在每个数字后按回车键。因此,当您键入数字并按回车键时,扫描仪会将数字视为一个输入,而将输入视为另一输入,因此会跳过下一个整数。

您应该输入一行中的所有数字,然后按 Enter 键,或者最好使用 nextLine 方法,然后将该字符串转换为整数。

关于java - 在没有任何 nextLine 的情况下跳过 nextInt - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28528978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com