怡宁2131 发表于 2021-9-17 16:15:11

为什么这两种思路的输出结果不一样?

public class sumArr{
      public static void main(String[] args){
                int arr[]={68,27,95,88,171,996,51,210};
                int sum=0;
                for(int i=0;i<8;i++){
                        if(arr%10!=7&&arr/10%10!=7&&arr%2==0){
                              sum=sum+arr;
                        }
                }
                System.out.println("数组arr按要求求和结果为:"+sum);
      }
}
------------------------------------------------------------------------------------
以上的输出结果为1362
------------------------------------------------------------------------------------
public class Arrsum{
      public static void main(String[] args){
                int arr[]={68,27,95,88,171,996,51,210};
                int sum=0;
                for(int i=0;i<=210;i++){
                        for(int n=0;n<8;n++){
                              if(i==arr & i/10%10!=7 & i%10!=7 & i%2==0){
                                        sum=sum+i;
                              }
                        }
                }
                System.out.println("数组arr按要求求和结果为:"+sum);
      }
}
-------------------------------------------------------------------------------------
以上输出结果为366
-------------------------------------------------------------------------------------
为什么不一样?求助{:10_266:}

wp231957 发表于 2021-9-17 16:32:23

第二个逻辑混乱,完全没看懂
并不是两个&   ???

巴巴鲁 发表于 2021-9-17 18:06:56

数组中最大值是996啊,另外推荐第二种加一个break;
for(int i=0;i<=996;i++){
         for(int n=0;n<8;n++){
               if(i==arr & i/10%10!=7 & i%10!=7 & i%2==0){
                   sum=sum+i;
                   break;
               }
         }
       }

怡宁2131 发表于 2021-9-18 08:20:46

wp231957 发表于 2021-9-17 16:32
第二个逻辑混乱,完全没看懂
并不是两个&   ???

第二个第六行的那个for相当于多定义了一个变量存储arr[]的元素
但是&有一个或两个的结果也都一样
页: [1]
查看完整版本: 为什么这两种思路的输出结果不一样?