为了账号安全,请及时绑定邮箱和手机立即绑定

这道题可以用for写吗?可以的话应该怎么写?我写了一下 发现运行结果不对,请问是哪里的问题谢谢

public class Hana3 {

 public static void main(String[] args) {

int i=2;

int sum=0;

for(;i<=50&&i%2==0;i++) {

sum=sum+i;

}

System.out.println("50以内偶数和为:"+sum);

}  

 }


正在回答

4 回答

public class Hana3 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 2; i <= 50 ; i++) {
            if(i % 2 == 0){
                sum = sum + i;
            }
        }
        System.out.println("50以内偶数和为:" + sum);
    }
}

for 循环条件不满足,跳出了,for循环就执行了一次,把条件放在for循环里面解决问题

0 回复 有任何疑惑可以回复我~
#1

汉堡要努力 提问者

好的 谢谢
2019-03-18 回复 有任何疑惑可以回复我~

public class HelloWorld {
    public static void main(String[] args) {
       

  
  int sum=0;
  int num=0;
  do{
      if(num%2==0){
      sum+=num;
      }
      num++;
  }while(num<=50);
  System.out.println("50以内偶数的和为:"+sum);
 }
}

0 回复 有任何疑惑可以回复我~

因为你的i是在for循环中赋值,但是i的最新值是在下一次for循环时使用,比如,第一次for循环时,i初始为0,在循环中赋值得到2,但是输出的是初值0,2在第二次循环输出,所以到最后一次循环你会少加了一个50,你可以改成b<=52或者如下

public static void main(String[] args) {

int sum = 0;

for(int i=0;i<=50;i=i+2)

{

    sum = sum+i;

    System.out.println("50以内的偶数和为"+sum);

        }

    }

}


0 回复 有任何疑惑可以回复我~
#1

汉堡要努力 提问者

我试着执行了你发的第二种,运行结果是: 50以内的偶数和为506 50以内的偶数和为552 50以内的偶数和为600 50以内的偶数和为650
2019-03-15 回复 有任何疑惑可以回复我~
#2

热河i 回复 汉堡要努力 提问者

你可以把它的输出语句放在倒数第二个括号前 因为他是在for循环里面写的输出语句 这样的话就会有很多,在循环外面的话就是650 输出一次就ok了
2019-03-18 回复 有任何疑惑可以回复我~

 public static void main(String[] args) {
int sum = 0; // 保存 1-50 之间偶数的和
int num = 2; // 代表 1-50 之间的偶数
do {
//实现累加求和
    sum=sum+num;
num = num + 2; // 每执行一次将数值加2,以进行下次循环条件判断
} while (  num<=50  ); // 满足数值在 1-50 之间时重复执行循环
System.out.println(" 50以内的偶数之和为:" + sum );
}
}

你用dowhile试一下

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这道题可以用for写吗?可以的话应该怎么写?我写了一下 发现运行结果不对,请问是哪里的问题谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信