Java 对这个循环中的括号感到困惑吗
这是编写bat(Java版本)时的问题: 给定一个整数数组,如果数组中某个地方的2旁边包含2,则返回true。 has22({1,2,2})→ 真的 has22({1,2,1,2})→ 假的 has22({2,1,2})→ 错误 这就是我的解决方案:Java 对这个循环中的括号感到困惑吗,java,brackets,Java,Brackets,这是编写bat(Java版本)时的问题: 给定一个整数数组,如果数组中某个地方的2旁边包含2,则返回true。 has22({1,2,2})→ 真的 has22({1,2,1,2})→ 假的 has22({2,1,2})→ 错误 这就是我的解决方案: public boolean has22(int[] nums) { for (int i=0; i<nums.length-1;i++) { if (nums[i]==2 && nums[i+1]==2)
public boolean has22(int[] nums) {
for (int i=0; i<nums.length-1;i++) {
if (nums[i]==2 && nums[i+1]==2) {
return true;
}
else {
return false;
}
}
}
公共布尔值has22(int[]nums){
对于(int i=0;i想象一种情况,当您的参数为空或
null
时。您的第一个方法不会编译,因为它不会为所有情况返回布尔值
您的第二个方法会编译,因为在任何情况下,迭代完成后,它都会返回一个布尔值。公共布尔值为22(int[]nums)
public boolean has22(int[] nums)
{
for (int i=0; i<nums.length-1;i++)
if (nums[i]==2 && nums[i+1]==2)
return true;
return false;
}
{
for(int i=0;i)如果在第一次迭代时for循环的条件不满足该怎么办?您的方法是否返回值?类似于for(int i=nums.length-1;i确保i+1
不会超出nums
数组的长度。您可以通过查看当前迭代中的位置来检查这一点。因此基本上else是多余的?@JerryMurphy在这种特定情况下,else
是多余的。我现在明白了…添加else让我感到困惑。感谢您的帮助你的帮助
public boolean has22(int[] nums)
{
for (int i=0; i<nums.length-1;i++)
if (nums[i]==2 && nums[i+1]==2)
return true;
return false;
}