Java 对这个循环中的括号感到困惑吗

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)

这是编写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) {
         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;
     }