我的代码仅适用于第一个索引,该索引仅返回8 true
。
例如,如果我将第一个索引(nums[0]
)更改为9,它将跳过3
并打印4 true
。
我该如何做才能检查其余部分(包括其他每个元素),使其适用于所有其他索引?
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 == 0) {
System.out.print(nums[i] + " ");
return true;
}
}
return false;
}
public static void main(String args[]) {
int[] nums = {8,3,4,1,6,5,12,1};
System.out.println(solution(nums));
}
答案 0 :(得分:4)
您的代码中有一个(逻辑)错误,有一部分可以改进:
$url = 'http://site.zz/file.jpg';
file_exists($url); //always is false
filesize($url); //not working
在当前代码中,第一个有效测试将返回true,这意味着您不会测试以下情况。更改代码,以便对它们全部进行测试,并且在遇到无效值时仅在流程中返回。
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 == 0) {
System.out.print(nums[i] + " ");
return true;
}
}
return false;
}
您可以改进的第二件事是,无需在每次迭代中检查偶数索引。只需将i值增加2,而不是1:
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 != 0) {
System.out.print(nums[i] + " ");
return false;
}
}
return true;
}
答案 1 :(得分:0)
我认为您想做的是检查所有偶数索引,看看是否有偶数可以这样做:
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 != 0) {
System.out.print(nums[i] + " ");
return false;
}
}
return true;
}