Bah*_*adi 0 java arrays integer for-loop
当我执行此代码时,输出为"140",即"28*5",但它应为"150",即"28 + 31 + 30 + 31 + 30",它应计算2个月之间的天数"feb"和"七月"...所以这意味着for循环不能正常工作或者什么?那为什么呢 !你能在这帮我吗?PS:我试图将循环中的j ++更改为j + 1,但Android Studio表示"这不是声明"
int[] pair = {1,3,5,7,8,10,12};
int[] impair = {4,6,9,11};
int x=0;
int j;
int year=2015;
int mm=2;
int month=7;
String msg="";
if (month>mm) {
for (j = mm; j<month; j++){
if (Arrays.asList(impair).contains(j)){
x = 31 + x;
}else if(Arrays.asList(pair).contains(j)){
x = 30 + x;
}else{
if (year%4==0) {
x= 29 + x;
}else{
x= 28 + x;
}
}
}
System.output.println(x);
}
Run Code Online (Sandbox Code Playgroud)
您正在尝试通过调用将其转换int[]为a .但是这会导致单个元素(原始元素),它不包含任何值.原因是Arrays.asList()不能正常工作? - 它是一个通用方法,type参数必须是引用类型. 是一种引用类型(与所有数组一样),但不是.List<Integer>Arrays.asListList<int[]>int[]jint[]int
这就是为什么测试全部失败并28重复选择添加的原因.
改变声明类型的pair并且impair从int[]到Integer[],以便Arrays.asList将推断的类型为Integer正确(引用类型).然后该contains方法将按预期工作.有了这个改变,我得到了150.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |