-2
class Test {

public static void main(String args[]) {
    Tournament T = new Tournament();
    Team t = new Team();
    T.getInfo2();
    /*T.display2();
    T.teamObject();*/
    int teams = T.num_team;
    int players;
    Team[] tArr = new Team[teams];
    for (int i = 0; i < teams; i++) {
        tArr[i] = new Team();
        tArr[i].getInfo1();
        players = t.num_players;
        player[] pArr = new player[players];
        for (int j = 0; j < players; j++) {
            pArr[j] = new player();
            pArr[j].getInfo();
        }
    }

}

为什么第二个 for 循环没有运行?没有编译时错误或运行时错误。我无法解决问题。

4

2 回答 2

2

第二个循环按预期执行。可能t.num_players是分配给玩家的零。

于 2013-09-04T12:51:14.263 回答
0

试试这种方式:

for (int i = 0; i < teams; i++) {
    tArr[i] = new Team();
    tArr[i].getInfo1();
    players = tArr[i].num_players;    
        //  this way you will loop over the num_players of the new team you created
        //  MAYBE this is the problem
    player[] pArr = new player[players];
    for (int j = 0; j < players; j++) {
        pArr[j] = new player();
        pArr[j].getInfo();
    }
}

并且请阅读Java代码约定,不尊重camelCase编码风格使得阅读代码非常混乱,类应该以每个单词的大写字母开头,没有空格,变量以第一个单词的小写字母开头,然后每个其他单词以没有空格的大写字母开头....例如

Object object = new Object();
MyClass myClass = new MyClass();
MyArray myArray = new MyArray[myClass.getArrayLength()];

依此类推,java中没有变量名为T,甚至类也不喜欢这样命名,因为T在泛型中代表Type,就像E代表Elements

很抱歉谈论超出范围的主题,但我阅读您的代码的问题中有 50% 是因为这些简单的规则

于 2013-09-04T21:16:52.700 回答