gpt4 book ai didi

java - "Variable Might not have bee initialized."声明的数组变量发生错误

转载 作者:行者123 更新时间:2023-12-01 12:33:40 26 4
gpt4 key购买 nike

我编写了下面的代码来获取整数序列作为输入,并根据用户给出的位置号k将它们分成两部分。大于指定数量的数字将添加到一个列表中,其余的添加到另一个列表中。

这里'当我运行程序时变量编号可能尚未初始化显示编译时错误。任何人都可以给出解决方案。

(由于我是初学者,我在命令提示符下运行java程序)

如果您提供替代方案,请解释为什么会发生这种情况。

import java.util.*;
import java.util.Scanner;

class StringSplit{
public static void main(String args[]){
Scanner input=new Scanner(System.in);
List<Integer> part1=new ArrayList<Integer>();
List<Integer> part2=new ArrayList<Integer>();
int k,point=0;
int nums[]; //Declaring variable

System.out.print("\nEnter the point of split : ");
k=input.nextInt();

boolean correct=false;
String numbers;
System.out.print("\nEnter the number list : ");
numbers=input.nextLine();
String numlist[]=numbers.split(" ");

nums=new int[numlist.length]; //Declaring the size
for(int i=0;i<numlist.length;i++){
nums[i]=Integer.parseInt(numlist[i]); //Assigning values to the array
}


point=nums[k-1];
for(int x=0;x<nums.length-1;x++){
if(nums[x]>point) part1.add(nums[x]);
else part2.add(nums[x]);
}

System.out.print("\nPart 1 : ");
for(int i:part1){
System.out.print(" "+i);
}

System.out.print("\nPart 2 : ");
for(int j:part2){
System.out.print(" "+j);
}

}
}

最佳答案

局部变量应该在使用变量之前初始化

因此将初始值赋给变量k。例如

int k = 0;

但是因为你已经有了这条线-

k=input.nextInt();

您不应该收到错误。

如果您注释此行,您将在

处收到错误
point=nums[k-1]; 

您使用变量的位置。

关于java - "Variable Might not have bee initialized."声明的数组变量发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25744463/

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