Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何循环遍历每个数组项并除以2?_Java_Arrays_Loops - Fatal编程技术网

Java 如何循环遍历每个数组项并除以2?

Java 如何循环遍历每个数组项并除以2?,java,arrays,loops,Java,Arrays,Loops,一组居民代表城市及其各自的人口。例如,以下数组显示了8个城市及其各自的人口: [3,6,0,4,3,2,7,1] 一些城市的人口为0,这是因为一种正在夺走人类生命的大规模僵尸疾病。每过一天,每个城市都会失去一半的人口。 编写一个程序循环遍历每个城市的人口,使其失去一半的人口,直到所有城市都没有人了。每天对数组中的每个元素进行更新,并按如下方式打印数组: Day 0 [3, 6, 0, 4, 3, 2, 7, 1] Day 1 [1, 3, 0, 2, 1, 1, 3, 0] Day 2 [0,

一组居民代表城市及其各自的人口。例如,以下数组显示了8个城市及其各自的人口:

[3,6,0,4,3,2,7,1]

一些城市的人口为0,这是因为一种正在夺走人类生命的大规模僵尸疾病。每过一天,每个城市都会失去一半的人口。 编写一个程序循环遍历每个城市的人口,使其失去一半的人口,直到所有城市都没有人了。每天对数组中的每个元素进行更新,并按如下方式打印数组:

Day 0 [3, 6, 0, 4, 3, 2, 7, 1]
Day 1 [1, 3, 0, 2, 1, 1, 3, 0]
Day 2 [0, 1, 0, 1, 0, 0, 1, 0]
Day 3 [0, 0, 0, 0, 0, 0, 0, 0]
---- EXTINCT ----
问题是当我输入[3,6,0,4,3,2,7,1]时,它会给我两条额外的带零的数组线

Day 0 [3, 6, 0, 4, 3, 2, 7, 1]
Day 1 [1, 3, 0, 2, 1, 1, 3, 0]
Day 2 [0, 1, 0, 1, 0, 0, 1, 0]
Day 3 [0, 0, 0, 0, 0, 0, 0, 0]
Day 4 [0, 0, 0, 0, 0, 0, 0, 0]
Day 5 [0, 0, 0, 0, 0, 0, 0, 0]
---- EXTINCT ----
当我尝试在for循环中使用incidents.length-2时,它可以工作,但当输入不同时,它会产生另一个问题,例如

20
20
0
20
20
10
0
10
这是我的密码

import java.util.*;

class Main {
  public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    int[] inhabitants = new int[8];

    for(int i=0; i<inhabitants.length; i++) {
        inhabitants[i] = input.nextInt();
    }

    int day = 0;
    System.out.println("Day " + day + " "+ Arrays.toString(inhabitants));
    for (int i = inhabitants.length/2; i <= inhabitants.length-2; i++) {
        for (int j =0; j < inhabitants.length; j++) {
            inhabitants[j] /= 2;
        }
        day++;
        System.out.println("Day " + day + " "+ Arrays.toString(inhabitants));
    }

    System.out.println("---- EXTINCT ----");
  }
}
import java.util.*;
班长{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int[]居民=新int[8];

对于(inti=0;i您的外循环条件应该为“开”
而不是完全用零填充。类似于

int day = 0;
System.out.println("Day " + day + " " + Arrays.toString(inhabitants));
while (!Arrays.stream(inhabitants).allMatch(x -> x == 0)) {
    day++;
    for (int i = 0; i < inhabitants.length; i++) {
        inhabitants[i] /= 2;
    }
    System.out.println("Day " + day + " " + Arrays.toString(inhabitants));
}
System.out.println("---- EXTINCT ----");
int-day=0;
System.out.println(“Day”+Day+“”+array.toString(居民));
而(!Arrays.stream(居民).allMatch(x->x==0)){
day++;
for(int i=0;i<0.length;i++){
居民[i]/=2人;
}
System.out.println(“Day”+Day+“”+array.toString(居民));
}
System.out.println(“----灭绝----”;

您的外循环条件应为“开”而不是完全为零。例如

int day = 0;
System.out.println("Day " + day + " " + Arrays.toString(inhabitants));
while (!Arrays.stream(inhabitants).allMatch(x -> x == 0)) {
    day++;
    for (int i = 0; i < inhabitants.length; i++) {
        inhabitants[i] /= 2;
    }
    System.out.println("Day " + day + " " + Arrays.toString(inhabitants));
}
System.out.println("---- EXTINCT ----");
int-day=0;
System.out.println(“Day”+Day+“”+array.toString(居民));
而(!Arrays.stream(居民).allMatch(x->x==0)){
day++;
for(int i=0;i<0.length;i++){
居民[i]/=2人;
}
System.out.println(“Day”+Day+“”+array.toString(居民));
}
System.out.println(“----灭绝----”;

外部循环不应取决于您拥有的城市数量。它应在存在非零条目时运行。外部循环不应取决于您拥有的城市数量。它应在存在非零条目时运行。