为了账号安全,请及时绑定邮箱和手机立即绑定

一个关于数组的问题

一个关于数组的问题

半度幽殇 2016-07-22 20:57:38
我想创建一个程序:用户输入一个值i,计算机找出0-i之间所有的偶数并且保存在数组num中,可是我的代码出问题了,eclipse未报错但是实现不了这个功能,并且编译也出错。还有for里面的代码可以修改成员变量吧?代码1: import java.util.Scanner; public class A { public static void main(String[] args){ //对象实例化 A aa=new A(); int i=aa.getNum();//即用户输入的值储存在i中 //定义一个整型数组num,初始化为0 int[] num={0}; //数组下标初始化 int t=0; //从j=0至j=i找出所有的偶数 for(int j=0;j<=i;j++){ if(j%2==0){ //为数组赋值 j=num[t]; t++;//t自增1为下一次赋值 } } //遍历数组并输出 for(int x:num){ System.out.println(x); } } //获取用户输入的数字 public int getNum(){ System.out.println("请输入一个整数:"); Scanner s=new Scanner(System.in); int y=s.nextInt(); return y; } }我把数组下标初始化放入for中的if内,不显示错误,但输入数字后没反应。代码2: import java.util.Scanner; public class A { public static void main(String[] args){ A aa=new A(); int i=aa.getNum();//即用户输入的值储存在i中 //定义一个整型数组num,初始化为0 int[] num={0}; //从j=0至j=i找出所有的偶数 for(int j=0;j<=i;j++){ if(j%2==0){ //数组下标初始化**************************放这了 int t=0; //为数组赋值 j=num[t]; t++;//t自增1为下一次赋值 } } //遍历数组并输出 for(int x:num){ System.out.println(x); } } //获取用户输入的数字 public int getNum(){ System.out.println("请输入一个整数:"); Scanner s=new Scanner(System.in); int y=s.nextInt(); return y; } }谁能帮我修改一下,谢谢!
查看完整描述

3 回答

?
1994我

TA贡献3条经验 获得超1个赞

你的num数组已经初始化了, int[] num={0};它的容量为1,只有一个元素,

for(int j=0;j<=i;j++){

            if(j%2==0){

//数组下标初始化**************************放这了

                int t=0;

//为数组赋值

                j=num[t];

                t++;//t自增1为下一次赋值

                 

            }

这段代码你想把偶数加进去,就必须扩大数组的容量,而你根本就没做,编译器肯定报错了,是数组越界,你最好一开始就把数组设计的足够大,num[100]什么的

查看完整回答
1 反对 回复 2016-07-22
  • 半度幽殇
    半度幽殇
    这样会使未赋值的地方出现0,100的容量赋值了30个,剩余70个就是0了
  • 3 回答
  • 0 关注
  • 1479 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信