我正在学习Java,我在阵列章节中找到了一个我无法解决的练习.
演习说:
编写创建一个名为的数组的代码,
odds并使用for循环将所有奇数在-6和38之间存储到其中.使数组的大小足够大以存储数字.
我能想出的唯一解决方案是:
import java.util.Arrays;
public class exerciseOddsArray {
public static void main(String[]args){
oddsArray();
}
public static void oddsArray(){
int odds = 0;
for (int i = -6; i <= 38; i++){
if (i % 2 == 1){
odds++;
}
}
int[] numbers = new int[odds];
for (int i = 0; i < numbers.length; i ++){
for (int j = -6; j <= 38; j++){
if(j % 2 == 1){
numbers[i] = j;
}
}
}
System.out.println(Arrays.toString(numbers));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,该程序打印:
[37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37]
Run Code Online (Sandbox Code Playgroud)
我不明白为什么.
小智 6
这里不需要嵌套的FOR循环.只需创建一个整数变量i来跟踪数组中的位置,并在添加每个新项目时增加它.PS ...数组应该根据赋值的规格被称为"赔率".我建议重命名你用来计算其他东西的赔率数量的变量(例如numberOfOdds)
int[] odds= new int[numberOfOdds];
int i = 0;
for (int j = -6; j <= 38; j++)
{
if(j % 2 == 1)
{
odds[i++] = j;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |