Java 使用for循环在数组中存储奇数
我正在尝试创建一个名为Java 使用for循环在数组中存储奇数,java,arrays,loops,for-loop,Java,Arrays,Loops,For Loop,我正在尝试创建一个名为赔率的数组,该数组使用for循环将-6和38之间的所有奇数存储到数组中 int[] odds = new int[22]; for (int i = -6, m = 0; i <= 38 && m < 22; i++, m++) { if (i % 2 != 0) { odds[m] = i; } } int[]赔率=新的int[22]; 对于(int i=-6,m=0;i您当前允许跟踪数组中赔率索引的变量m与
赔率的数组,该数组使用for
循环将-6
和38
之间的所有奇数存储到数组中
int[] odds = new int[22];
for (int i = -6, m = 0; i <= 38 && m < 22; i++, m++) {
if (i % 2 != 0) {
odds[m] = i;
}
}
int[]赔率=新的int[22];
对于(int i=-6,m=0;i您当前允许跟踪数组中赔率索引的变量m
与奇数的实际值一起移动。要解决此问题,请将m
数组索引计数器移到检查赔率的for
循环之外:
int[] odds = new int[22];
int m = 0;
for (int i = -6; i <= 38; i++) {
if (i % 2 != 0) {
odds[m] = i;
++m;
}
}
int[]赔率=新的int[22];
int m=0;
对于(int i=-6;i你在循环每次运行时递增m
。因此对于i
=-6,你将存储在索引0处,但在i
=-4,你将存储在索引2处。你正在跳过索引。更好的方法是利用我们知道每隔一个数字都是奇数的事实,每次只需将循环递增2即可:
int[] odds = new int[22];
for (int i = -5, m = 0; i <= 38; i = i + 2, m++) {
odds[m] = i;
}
int[]赔率=新的int[22];
对于(inti=-5,m=0;i只有在存储新的奇数时才必须增加m)
因此,删除for语句中的m++并修改赋值几率[m++]=i;最好的解决方案是使用Tim和nhouser建议的方法:
int[] odds = new int[22];
int m = 0;
for (int i = -5; i < 38; i += 2) {
odds[m++] = i;
}
int[]赔率=新的int[22];
int m=0;
对于(int i=-5;i<38;i+=2){
赔率[m++]=i;
}
每次迭代都会增加m
int[] odds = new int[22];
int oddCount = 0;
for (int i = -6; i <= 38;i++) {
if (i % 2 != 0) {
odds[oddCount] = i;
oddCount++;
}
}
int[]赔率=新的int[22];
int oddCount=0;
对于(inti=-6;i@CyberMaestro很乐意提供帮助!如果这有用,请投票并接受=]