这样也是可以吗?

来源:5-1 编程练习

qq_胡斌_0

2016-06-07 18:58

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回答

  • 学习就是乐趣
    2016-06-14 20:02:39

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

  • 学习就是乐趣
    2016-06-07 19:11:46

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

    qq_胡斌_...

    是不是在while的()里只有(score<60)就可以了! 不有加上count++ 是不是?

    2016-06-07 23:15:08

    共 2 条回复 >

  • waitree
    2016-06-07 19:08:57

    你的代码有两个问题:

    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 );其他不变就可以了

    qq_胡斌_...

    谢谢大家!

    2016-06-07 20:21:24

    共 2 条回复 >

  • 拜托一定要行
    2016-06-07 19:07:21

    这会产生一个问题。

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

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

    拜托一定要行

    所以先执行的话,count会多加一次。 因为do{}while()语句是先执行一次do里面的语句,然后再做判断的。

    2016-06-07 19:09:13

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

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

1165574 学习 · 17587 问题

查看课程

相似问题