用while语句增强找整除数的程序
增强点:找出n个可以被整除的数。
while语句的语法
-
条件表达式的结果是一个boolean值,如果为true,则执行循环体,如果为false, 则循 环结束。
-
While循环体是一个代码块。所以while循环也是可以嵌套别的语句的,包括while语句, for语句,if-else语句等。
while(条件表达式)
while循环体
while语句的代码示例
public class Example_while {
public static void main(String[] args) {
int n = 10;
int dividend = 100;
int divisor = 89;
//从一百开始找出10个能够整除89的数
int found = 0;
while(found < n){
if (dividend % divisor == 0){
found ++;
System.out.println(dividend+"可以整除"+divisor+",商为"+(dividend / divisor));
}
dividend++;
}
}
}
do-while语句—至少执行一次
-
do-while语句语法
-
do-while语句的循环体至少执行一次
do{
while循环体
}while(条件表达式):
代码示例
do {
System.out.println("先执行一次");
}while (false);
死循环(endless loop)
-
死循环:无法结束的循环(endless loop/infinite loop)
-
死循环是因为没有设置好结束条件,循环的结束条件很重要,要充分考虑各种 边界情况。
-
一个死循环的例子
public class Abexample {
public static void main(String[] args) {
int n = 5;
int found = 0;
while (found < n){
System.out.println("死循环代码");
}
}
}
一个看似死循环却不是死循环的例子
-
用while找出5个能被2,000,000,000整除的数
-
程序最终还是结束了,但是结果并不是我们想要的
public class FindNDivNotEndess {
public static void main(String[] args) {
int n = 5;
int dividend = 100;
int divisor = 2000000000;
int found = 0;
while (found < n) {
if (dividend % divisor == 0) {
System.out.println(dividend + "可以整除" + divisor + ",商是" + dividend/divisor);
found++;
}
dividend++;
}
}
}
执行的结果为 :
2000000000可以整除2000000000,商是1
-2000000000可以整除2000000000,商是-1
0可以整除2000000000,商是0
..........
//int里面基本上不存在能够整除20亿的数 ,因此代码的执行结果会在正数输出之后输出负数,循环起来
使用break语句结束循环
-
break语句可以结束任何循环
-
不考虑负数的情况,使用break改善程序
-

浙公网安备 33010602011771号