| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:一个让我很不解的问题
只看楼主 加入收藏
MoonVer
Rank: 2
等 级:论坛游民
帖 子:13
专家分:10
注 册:2010-7-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
一个让我很不解的问题
请问这是什么意思
图片附件: 游客没有浏览图片的权限,请 登录注册

是在执行时遇到的。
我的程序是这样的
程序代码:
import java.util.Scanner;
import java.util.ArrayList;
public class PlaneExtra{
    private static Scanner scanf=new Scanner(System.in);
    public static void main (String[] args){
        int p1TurnNum = (int)(Math.random()*3);
        int p2turnNum = (int)(Math.random()*3);
        int p3turnNum = (int)(Math.random()*3);
        
        ArrayList<Integer> p1te = new ArrayList<Integer>();
        ArrayList<Integer> p2te = new ArrayList<Integer>();
        ArrayList<Integer> p3te = new ArrayList<Integer>();

        int p1left = 1;
        int p2left = 1;
        int p3left = 1;

        int pm1 = 1;
        int pm2 = 1;
        int pm3 = 1;

        int[] zb1;
        zb1 = new int[10];
        int[] zb2;
        zb2 = new int[10];
        int[] zb3;
        zb3 = new int[10];

        int[] p1t;
        p1t = new int[10];
        int[] p2t;
        p2t = new int[10];
        int[] p3t;
        p3t = new int[10];

        p1te.add(p1t[0]);
        p1te.add(p1t[1]);
        p1te.add(p1t[2]);
        p1te.add(p1t[3]);
        p1te.add(p1t[4]);
        p1te.add(p1t[5]);
        p1te.add(p1t[6]);
        p1te.add(p1t[7]);
        p1te.add(p1t[8]);
        p1te.add(p1t[9]);

        p2te.add(p2t[0]);
        p2te.add(p2t[1]);
        p2te.add(p2t[2]);
        p2te.add(p2t[3]);
        p2te.add(p2t[4]);
        p2te.add(p2t[5]);
        p2te.add(p2t[6]);
        p2te.add(p2t[7]);
        p2te.add(p2t[8]);
        p2te.add(p2t[9]);

        p3te.add(p3t[0]);
        p3te.add(p3t[1]);
        p3te.add(p3t[2]);
        p3te.add(p3t[3]);
        p3te.add(p3t[4]);
        p3te.add(p3t[5]);
        p3te.add(p3t[6]);
        p3te.add(p3t[7]);
        p3te.add(p3t[8]);
        p3te.add(p3t[9]);

        int p1HitNum = 0;
        int p2HitNum = 0;
        int p3HitNum = 0;
        int KillNum = 0;
        int GuessNum;
        
        boolean flag;
        
    do{
        flag = false;
        int t1 =(int)(Math.random()*5 + 1); 
        int t2 =(int)(Math.random()*6 + 1);
        int t3 =(int)(Math.random()*5 + 4);  

        zb1[1] = t1;
        zb1[0] = zb1[1] + 2;
        zb1[2] = zb1[1] + 1;
        zb1[3] = zb1[1] + 2;
        zb1[4] = zb1[1] + 3;
        zb1[5] = zb1[1] + 4;
        zb1[6] = zb1[1] + 2;
        zb1[7] = zb1[1] + 1;
        zb1[8] = zb1[1] + 2;
        zb1[9] = zb1[1] + 3;

        zb2[0] = t2;
        zb2[1] = zb2[0] + 1;
        zb2[2] = zb2[0] + 1;
        zb2[3] = zb2[0] + 1;
        zb2[4] = zb2[0] + 1;
        zb2[5] = zb2[0] + 1;
        zb2[6] = zb2[0] + 2;
        zb2[7] = zb2[0] + 3;
        zb2[8] = zb2[0] + 3;
        zb2[9] = zb2[0] + 3;

        zb3[0] = t3;
        zb3[1] = zb3[0] - 1;
        zb3[2] = zb3[0] - 1;
        zb3[3] = zb3[0] - 1;
        zb3[4] = zb3[0] - 1;
        zb3[5] = zb3[0] - 1;
        zb3[6] = zb3[0] - 2;
        zb3[7] = zb3[0] - 3;
        zb3[8] = zb3[0] - 3;
        zb3[9] = zb3[0] - 3;


        if ( p1TurnNum == 0 ){
            p1t[0] = zb1[0] * 10 + zb2[0];
            p1t[1] = zb1[1] * 10 + zb2[1];
            p1t[2] = zb1[2] * 10 + zb2[2];
            p1t[3] = zb1[3] * 10 + zb2[3];
            p1t[4] = zb1[4] * 10 + zb2[4];
            p1t[5] = zb1[5] * 10 + zb2[5];
            p1t[6] = zb1[6] * 10 + zb2[6];
            p1t[7] = zb1[7] * 10 + zb2[7];
            p1t[8] = zb1[8] * 10 + zb2[8];
            p1t[9] = zb1[9] * 10 + zb2[9];
        }

        if ( p1TurnNum == 1 ){
            p1t[0] = zb2[0] * 10 + zb1[0];
            p1t[1] = zb2[1] * 10 + zb1[1];
            p1t[2] = zb2[2] * 10 + zb1[2];
            p1t[3] = zb2[3] * 10 + zb1[3];
            p1t[4] = zb2[4] * 10 + zb1[4];
            p1t[5] = zb2[5] * 10 + zb1[5];
            p1t[6] = zb2[6] * 10 + zb1[6];
            p1t[7] = zb2[7] * 10 + zb1[7];
            p1t[8] = zb2[8] * 10 + zb1[8];
            p1t[9] = zb2[9] * 10 + zb1[9];            
        }

        if ( p1TurnNum == 2 ){
            p1t[0] = zb3[0] * 10 + zb1[0];
            p1t[1] = zb3[1] * 10 + zb1[1];
            p1t[2] = zb3[2] * 10 + zb1[2];
            p1t[3] = zb3[3] * 10 + zb1[3];
            p1t[4] = zb3[4] * 10 + zb1[4];
            p1t[5] = zb3[5] * 10 + zb1[5];
            p1t[6] = zb3[6] * 10 + zb1[6];
            p1t[7] = zb3[7] * 10 + zb1[7];
            p1t[8] = zb3[8] * 10 + zb1[8];
            p1t[9] = zb3[9] * 10 + zb1[9];
        }

        if ( p1TurnNum == 3 ){
            p1t[0] = zb1[0] * 10 + zb3[0];
            p1t[1] = zb1[1] * 10 + zb3[1];
            p1t[2] = zb1[2] * 10 + zb3[2];
            p1t[3] = zb1[3] * 10 + zb3[3];
            p1t[4] = zb1[4] * 10 + zb3[4];
            p1t[5] = zb1[5] * 10 + zb3[5];
            p1t[6] = zb1[6] * 10 + zb3[6];
            p1t[7] = zb1[7] * 10 + zb3[7];
            p1t[8] = zb1[8] * 10 + zb3[8];
            p1t[9] = zb1[9] * 10 + zb3[9];
        }



        if ( p2turnNum == 0 ){
            p2t[0] = zb1[0] * 10 + zb2[0];
            p2t[1] = zb1[1] * 10 + zb2[1];
            p2t[2] = zb1[2] * 10 + zb2[2];
            p2t[3] = zb1[3] * 10 + zb2[3];
            p2t[4] = zb1[4] * 10 + zb2[4];
            p2t[5] = zb1[5] * 10 + zb2[5];
            p2t[6] = zb1[6] * 10 + zb2[6];
            p2t[7] = zb1[7] * 10 + zb2[7];
            p2t[8] = zb1[8] * 10 + zb2[8];
            p2t[9] = zb1[9] * 10 + zb2[9];
        }

        if ( p2turnNum == 1 ){
            p2t[0] = zb2[0] * 10 + zb1[0];
            p2t[1] = zb2[1] * 10 + zb1[1];
            p2t[2] = zb2[2] * 10 + zb1[2];
            p2t[3] = zb2[3] * 10 + zb1[3];
            p2t[4] = zb2[4] * 10 + zb1[4];
            p2t[5] = zb2[5] * 10 + zb1[5];
            p2t[6] = zb2[6] * 10 + zb1[6];
            p2t[7] = zb2[7] * 10 + zb1[7];
            p2t[8] = zb2[8] * 10 + zb1[8];
            p2t[9] = zb2[9] * 10 + zb1[9];            
        }

        if ( p2turnNum == 2 ){
            p2t[0] = zb3[0] * 10 + zb1[0];
            p2t[1] = zb3[1] * 10 + zb1[1];
            p2t[2] = zb3[2] * 10 + zb1[2];
            p2t[3] = zb3[3] * 10 + zb1[3];
            p2t[4] = zb3[4] * 10 + zb1[4];
            p2t[5] = zb3[5] * 10 + zb1[5];
            p2t[6] = zb3[6] * 10 + zb1[6];
            p2t[7] = zb3[7] * 10 + zb1[7];
            p2t[8] = zb3[8] * 10 + zb1[8];
            p2t[9] = zb3[9] * 10 + zb1[9];
        }

        if ( p2turnNum == 3 ){
            p2t[0] = zb1[0] * 10 + zb3[0];
            p2t[1] = zb1[1] * 10 + zb3[1];
            p2t[2] = zb1[2] * 10 + zb3[2];
            p2t[3] = zb1[3] * 10 + zb3[3];
            p2t[4] = zb1[4] * 10 + zb3[4];
            p2t[5] = zb1[5] * 10 + zb3[5];
            p2t[6] = zb1[6] * 10 + zb3[6];
            p2t[7] = zb1[7] * 10 + zb3[7];
            p2t[8] = zb1[8] * 10 + zb3[8];
            p2t[9] = zb1[9] * 10 + zb3[9];
        }



        if ( p3turnNum == 0 ){
            p3t[0] = zb1[0] * 10 + zb2[0];
            p3t[1] = zb1[1] * 10 + zb2[1];
            p3t[2] = zb1[2] * 10 + zb2[2];
            p3t[3] = zb1[3] * 10 + zb2[3];
            p3t[4] = zb1[4] * 10 + zb2[4];
            p3t[5] = zb1[5] * 10 + zb2[5];
            p3t[6] = zb1[6] * 10 + zb2[6];
            p3t[7] = zb1[7] * 10 + zb2[7];
            p3t[8] = zb1[8] * 10 + zb2[8];
            p3t[9] = zb1[9] * 10 + zb2[9];
        }

        if ( p3turnNum == 1 ){
            p3t[0] = zb2[0] * 10 + zb1[0];
            p3t[1] = zb2[1] * 10 + zb1[1];
            p3t[2] = zb2[2] * 10 + zb1[2];
            p3t[3] = zb2[3] * 10 + zb1[3];
            p3t[4] = zb2[4] * 10 + zb1[4];
            p3t[5] = zb2[5] * 10 + zb1[5];
            p3t[6] = zb2[6] * 10 + zb1[6];
            p3t[7] = zb2[7] * 10 + zb1[7];
            p3t[8] = zb2[8] * 10 + zb1[8];
            p3t[9] = zb2[9] * 10 + zb1[9];            
        }

        if ( p3turnNum == 2 ){
            p3t[0] = zb3[0] * 10 + zb1[0];
            p3t[1] = zb3[1] * 10 + zb1[1];
            p3t[2] = zb3[2] * 10 + zb1[2];
            p3t[3] = zb3[3] * 10 + zb1[3];
            p3t[4] = zb3[4] * 10 + zb1[4];
            p3t[5] = zb3[5] * 10 + zb1[5];
            p3t[6] = zb3[6] * 10 + zb1[6];
            p3t[7] = zb3[7] * 10 + zb1[7];
            p3t[8] = zb3[8] * 10 + zb1[8];
            p3t[9] = zb3[9] * 10 + zb1[9];
        }

        if ( p3turnNum == 3 ){
            p3t[0] = zb1[0] * 10 + zb3[0];
            p3t[1] = zb1[1] * 10 + zb3[1];
            p3t[2] = zb1[2] * 10 + zb3[2];
            p3t[3] = zb1[3] * 10 + zb3[3];
            p3t[4] = zb1[4] * 10 + zb3[4];
            p3t[5] = zb1[5] * 10 + zb3[5];
            p3t[6] = zb1[6] * 10 + zb3[6];
            p3t[7] = zb1[7] * 10 + zb3[7];
            p3t[8] = zb1[8] * 10 + zb3[8];
            p3t[9] = zb1[9] * 10 + zb3[9];
        }
        for (int p1r : p1t){
            for (int p2r : p2t ){
                for (int p3r : p3t)
                if ( p1r == p2r | p2r == p3r | p1r == p3r)
                {
                                flag = true;
                }
            }
        }
    }while(flag);
        System.out.println("Please tell me you answer. If system doesn't reply anything , it means that your answer is wrong.");
            System.out.println("Plane One is" +p1t[0]);
            System.out.println("Plane One is" +p1t[1]);
            System.out.println("Plane One is" +p1t[2]);
            System.out.println("Plane One is" +p1t[3]);
            System.out.println("Plane One is" +p1t[4]);
            System.out.println("Plane One is" +p1t[5]);
            System.out.println("Plane One is" +p1t[6]);
            System.out.println("Plane One is" +p1t[7]);
            System.out.println("Plane One is" +p1t[8]);
            System.out.println("Plane One is" +p1t[9]);
            System.out.println("Plane Two is" +p2t[0]);
            System.out.println("Plane Two is" +p2t[1]);
            System.out.println("Plane Two is" +p2t[2]);
            System.out.println("Plane Two is" +p2t[3]);
            System.out.println("Plane Two is" +p2t[4]);
            System.out.println("Plane Two is" +p2t[5]);
            System.out.println("Plane Two is" +p2t[6]);
            System.out.println("Plane Two is" +p2t[7]);
            System.out.println("Plane Two is" +p2t[8]);
            System.out.println("Plane Two is" +p2t[9]);
            System.out.println("Plane Three is" +p3t[0]);
            System.out.println("Plane Three is" +p3t[1]);
            System.out.println("Plane Three is" +p3t[2]);
            System.out.println("Plane Three is" +p3t[3]);
            System.out.println("Plane Three is" +p3t[4]);
            System.out.println("Plane Three is" +p3t[5]);
            System.out.println("Plane Three is" +p3t[6]);
            System.out.println("Plane Three is" +p3t[7]);
            System.out.println("Plane Three is" +p3t[8]);
            System.out.println("Plane Three is" +p3t[9]);
        while(KillNum < 3){
            System.out.println("Plane one Hit Number is " +p1HitNum);
            System.out.println("Plane two Hit Number is " +p2HitNum);
            System.out.println("Plane three Hit Number is " +p3HitNum);
            GuessNum = scanf.nextInt();            
            if ( GuessNum == p1t[1] ){
                p1te.remove(p1t[1]);
                p1HitNum++;
                System.out.println("Hit");
            }            
            if ( GuessNum == p1t[2] ){
                p1te.remove(p1t[2]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[3] ){
                p1te.remove(p1t[3]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[4] ){
                p1te.remove(p1t[4]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[5] ){
                p1te.remove(p1t[5]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[6] ){
                p1te.remove(p1t[1]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[7] ){
                p1te.remove(p1t[7]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[8] ){
                p1te.remove(p1t[8]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[9] ){
                p1te.remove(p1t[9]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p1t[0] ){
                p1te.remove(p1t[0]);
                p1HitNum++;
                KillNum++;
                pm1--;
                System.out.println("You Kill The Plane One! :->");
            }
            if ( pm1 == 1 && p1HitNum == 9){
                KillNum++;
                p1te.remove(p1t[0]);
                System.out.println("You Kill The Plane One! :->");
            }
        
            if ( GuessNum == p2t[1] ){
                p1te.remove(p2t[1]);
                p1HitNum++;
                System.out.println("Hit");
            }            
            if ( GuessNum == p2t[2] ){
                p2te.remove(p2t[2]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[3] ){
                p2te.remove(p2t[3]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[4] ){
                p2te.remove(p2t[4]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[5] ){
                p2te.remove(p2t[5]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[6] ){
                p2te.remove(p2t[6]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[7] ){
                p2te.remove(p2t[7]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[8] ){
                p2te.remove(p2t[8]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[9] ){
                p2te.remove(p2t[9]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p2t[0] ){
                p2te.remove(p2t[0]);
                p1HitNum++;
                KillNum++;
                pm2--;
                System.out.println("You Kill The Plane Two!:->");
            }
            if ( pm2 == 1 && p2HitNum == 9){
                KillNum++;
                p2te.remove(p2t[0]);
                System.out.println("You Kill The Plane Two! :->");
            }
        
            if ( GuessNum == p3t[1] ){
                p3te.remove(p3t[1]);
                p1HitNum++;
                System.out.println("Hit");
            }            
            if ( GuessNum == p3t[2] ){
                p3te.remove(p3t[2]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[3] ){
                p3te.remove(p3t[3]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[4] ){
                p3te.remove(p3t[4]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[5] ){
                p3te.remove(p3t[5]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[6] ){
                p3te.remove(p3t[6]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[7] ){
                p3te.remove(p3t[7]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[8] ){
                p3te.remove(p3t[8]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[9] ){
                p3te.remove(p3t[9]);
                p1HitNum++;
                System.out.println("Hit");
            }
            if ( GuessNum == p3t[0] ){
                p3te.remove(p3t[0]);
                p1HitNum++;
                KillNum++;
                pm2--;
                System.out.println("You Kill The Plane Three!:->");
            }
            if ( pm3 == 1 && p1HitNum == 9){
                KillNum++;
                p3te.remove(p3t[0]);
                System.out.println("You Kill The Plane Three! :->");
            }
        }
        System.out.println("You Win The Game! :-O");
    }
}




可能比较磨叽,但多谢了。
2010-08-16 19:12
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:0 
444行出错,超出范围
List 指向第72个,但大小只有10
ArrayList<Integer>
不推荐在List中存放integer,除非你非常了解List的各种方法
List中remove方法有2个
remove(int index)
          移除此列表中指定位置上的元素。
remove(Object o)
          移除此列表中首次出现的指定元素(如果存在)。
当传入一个int类型时会执行remove(int index) 方法而不是remove(Object o)

PS:另外不推荐使用List的remove方法,因为List不是线程安全的,在用foreach时remove会出现错误。
2010-08-16 20:08
MoonVer
Rank: 2
等 级:论坛游民
帖 子:13
专家分:10
注 册:2010-7-23
收藏
得分:0 
那么在使用ArrayList的情况下具体需要怎么改呢?(我是个新手学的不多,还望大家多多指教)
2010-08-16 20:29
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
收藏
得分:5 
以下是引用MoonVer在2010-8-16 20:29:13的发言:

那么在使用ArrayList的情况下具体需要怎么改呢?(我是个新手学的不多,还望大家多多指教)
程序代码:
import java.util.ArrayList;
import java.util.List;

public class Test1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Integer> list=new ArrayList<Integer>();
        int x=1;                            //int类型
        int y=2;
        list.add(x);       
        list.add(y);                        //第一个是1,第二个是2
        list.remove(x);                        //remove时把x传入,x是int类型
        System.out.println(list.get(0));    //发现list把第二个元素给删了,因为执行的是remove(int index),
        list.clear();                        //清空list
        Integer a=1;                        //integer类型
        Integer b=2;                       
        list.add(a);
        list.add(b);                        //第一个是1,第二个是2
        list.remove(a);                        //remove时把a传入,a是integer类型
        System.out.println(list.get(0));    //发现把a对象从list中删除了,而不是删除第二个元素,因为执行的是remove(Object o)

    }
}

如果你要删除传入的元素,那么传入的必须是Integer
如果你传入int类型,那么程序会认为你要删除第n个元素的。
2010-08-16 20:55
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:15 
可以强制装箱为Integer类型传入remove方法中

list.remove((Integer)x);  //这样 remove时把x传入,x是Integer类型

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-08-17 08:31
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
超出范围啦!
2010-08-17 23:12
快速回复:一个让我很不解的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042999 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved