首页 > 解决方案 > 每个循环的两个之间的控制流

问题描述

嘿,伙计们,我很感激你们能给我的任何智慧。

我的问题是:我不能让它循环遍历两个数组,所以我可以比较每个数组的元素并得到结果。

我已经尝试删除中断,但它仍然没有通过第一个数组循环,它只是不断循环通过第二个数组并打印它对不起,如果被问到我找不到我要找的东西。

    outerloop:
    for(int i=1;i<7;i++){

        System.out.print("Round No: " + i + "-");      

        for(int x : Player1)  {
            for(int y : Player2) {  

                if (x < y) {
                    System.out.println(" Player 1 wins the round: " + x + " beats " + y);
                } else if (x > y) {
                    System.out.println(" Player 2 wins the round: " + y + " beats " + x);  
                } else {
                    System.out.println("Tie!" + x + " ties with " + y);
                    break outerloop;
                }
            }
        }
    }

我从中得到的结果是它只循环通过第一个数组一次,然后循环并比较第二个数组中的所有内容

我试图让它同时做这两件事。..................................................... ..................................................... ....................................................

标签: javaarraysforeach

解决方案


一个想法,如果您的玩家 1 和 2 对象中有相同数量的元素,为什么不将它们放在单独的数组中,然后只处理其中一个的出现率呢?如下例所示:


List<Integer> p1 = new ArrayList<>();
List<Integer> p2 = new ArrayList<>();

for(int x: Player1) {
   p1.add(x);
}

for(int y: Player2) {
   p2.add(y);
}

for(int i=0;i<p1.size(); i++) {
    x = p1.get(i);
    y = p2.get(i);
    if (x < y) {
        System.out.println(" Player 1 wins the round: " + x + " beats " + y);
    } else if (x > y) {
        System.out.println(" Player 2 wins the round: " + y + " beats " + x);  
    } else {
        System.out.println("Tie!" + x + " ties with " + y);
    }
}


推荐阅读