我们讲了while循环,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。
do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。
①do-while循环
案例:数位数,如果给你一串数字,让你通过编程,让计算机判断出这一串数字是几位数,你打算怎么写?
- 程序要读入一个正整数,然后输出这个整数的位数。如:
- 输入:3452,输出:4
人看一眼就能看出来,这是4位数,但计算机是通过判断数的范围来决定它的位数,但如果是128475753943828482.....让人数怎么办,这时候就得依靠计算机,因为计算机最擅长的就是做算法,让这串数字每除以10就记一位,这样是不是就可以,让我们试一下。
这么看好像完全没有问题,但往往没有问题的时候就会出现问题,如果是这一串数字是0呢,大家在这个代码上试一下。
代码运行起来会显示0,这显然是不对的,0的位数是1,那如果用do-while循环是不是就可以把问题解决掉,在进入循环体之前不做判断,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。
ok,现在输入0显示的位数是1,说明是对的,那再测试一下其他数。
我做了while循环和do-while循环,两个流程图让他们更加明朗一点。