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

这样也是可以吗?

public class HelloWorld {

    public static void main(String[] args) {

        

        // 变量保存成绩

        int score = 53; 

        

        // 变量保存加分次数

        int count = 0;



        //打印输出加分前成绩 

         System.out.println("加分前成绩:"+score);  

        do {

            score++;

            count+1;

        } while (score<60 && count++);

        System.out.println("加分前成绩:"+score);

             System.out.println("共加了"+count+"次!");


正在回答

4 回答

对,因为while语句的括号里面是条件,在什么样的条件下执行里面的算法,count++不是条件所以不能加进去

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

但是你要声明变量count啊!语法错误了,应该是count=count+1,这样的话也可以的,但是后面,while后面的条件也有错误的,与count++不需要的,只需要提供循环的条件

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

qq_胡斌_0 提问者

谢谢你
2016-06-07 回复 有任何疑惑可以回复我~
#2

qq_胡斌_0 提问者

是不是在while的()里只有(score<60)就可以了! 不有加上count++ 是不是?
2016-06-07 回复 有任何疑惑可以回复我~

你的代码有两个问题:

  1. count+1;这句虽然进行了运算,但没有赋值给任何变量,运算后count不变,想完成count加1运算可以写成count++;或count+=1;或count=count+1;三种写法意思是一样的

  2. while()后面的括号里需要加入判断语句,score<60是判断,但count++是一个单纯运算,返回结果不是boolean类型的不能放入while后的括号里

  3. 循环可以改成如下这样:do {

            score++;

            count++;

        } while (score<60 );其他不变就可以了

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

waitree

好吧,没看题目,只是针对你的代码
2016-06-07 回复 有任何疑惑可以回复我~
#2

qq_胡斌_0 提问者

谢谢大家!
2016-06-07 回复 有任何疑惑可以回复我~

这会产生一个问题。

如果score一开始就>=60,比如score=65,那么你会先执行一次do{  score++;count++; },此时score=66,大于60跳出循环,count=1。

然而实际上,score在第一次进入循环体时就已经大于60了,所以是不需要加分的。所以应该是加了0次才对。

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

拜托一定要行

所以先执行的话,count会多加一次。 因为do{}while()语句是先执行一次do里面的语句,然后再做判断的。
2016-06-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165784    人
  • 解答问题       17588    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

这样也是可以吗?

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