黑马程序员技术交流社区

标题: 大家给我看一下为什么i没有存进数组里面呢? [打印本页]

作者: 黄晓天    时间: 2011-11-20 18:18
标题: 大家给我看一下为什么i没有存进数组里面呢?
package com.xiaotian.test;
/**
* 打印1-30的奇数和偶数,偶数存在a[],奇数存在 b[]里
* @author xiaotian
*
*/
public class OddNumberAndEvenNumber {

        /**
         * main主方法
         * @param args
         */
        public static void main(String[] args) {
                 int[] a = new int[15];
                 int[] b = new int[15];
                 
                 for(int i=1; i<31; i++){
                         int x = 0, y = 0;
                         if(i%2==0){//判断是偶数
                                 System.out.println(i+" ");
                                 a[x] = i;//存在a[]里
                                 x++;
                                 System.out.println("a[x]="+a[x]+" ");
                         }else{//判断是奇数
                                 b[y++] = i;//存在b[]里
                         }
                 }
                 //打印a[]
                 System.out.print("偶数:a[");
                 for(int x=0; x<a.length; x++){
                         if(x != a.length-1)
                              System.out.print(a[x]+",");
                         else
                                  System.out.print(a[x]+"]");
                 }
                //打印b[]
                 System.out.print("奇数:a[");
                 for(int x=0; x<b.length; x++){
                         if(x != b.length-1)
                              System.out.print(b[x]+",");
                         else
                                  System.out.print(b[x]+"]");
                 }
        }

}

作者: 梁锡伟    时间: 2011-11-20 19:22
我不告诉你,但你可以尝试debug。。。debug技能一定要掌握。。。要不然会杯具

作者: 肖岑锋    时间: 2011-11-20 22:26
                 for(int i=1; i<31; i++){
                         int x = 0, y = 0;
                         if(i%2==0){//判断是偶数
                                 System.out.println(i+" ");
                                 a[x] = i;//存在a[]里
                                 x++;
                                 System.out.println("a[x]="+a[x]+" ");
                         }else{//判断是奇数
                                 b[y++] = i;//存在b[]里
                         }
                 }
这段代码有问题,你在For循环里定义的X,Y。所以每次经过一次循环,X,Y重新赋值为0。所以数组下标一直为0
作者: 强子    时间: 2011-11-21 11:06
楼上正解,可以把x,y拿到循环外面定义。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2