JavaSE之路09--while循环
while循环(必会):
提问:有了for为什么还要while
场景:由于今天是老婆的生日,为了讨好她,买了10个馒头庆祝,结果老婆大发雷霆。
10个馒头引发的血案
是不是要磕头哄她?
是不是要循环磕?
磕多少次你知道吗?(不知道)
直到老婆气消了为止
while适应场景:当循环次数不确定的时候用
格式:
while(判断条件语句) {
循环体语句;
}
示例1:看代码输出结果
int x=1;
while(x<=10){
System.out.println(x);123,9 …10
x++;
}
是不是类似于:
for(int x=1;x<=10;x++){
System.out.println(x);
}
示例2:让用户输入若干个数,求出这些数的和,直到输入一个负数为止
public static void main(String[] args) {
int input,sum=0;//定义变量用于保存用户输入的数
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个数:”);
//输入提示
input=sc.nextInt();//开始输入数
while(input>0) { //说明输入的数正确,开始循环
sum=sum+input;
System.out.println(“请输入一个数:”);
//输入提示
input=sc.nextInt();//开始输入数
}
System.out.println(“sum=”+sum);
}
示例3:
二狗的妈妈谢霆锋每天给她2.5元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,二狗才可以存到100元钱。
public static void main(String[] args) {
int day=0;//保存天数
double sum=0;//保存二狗的总钱数
double money=2.5;//每天给的钱
double cost=6.0;//每天花掉的钱
while(sum<100){
day++;//开始加一天
sum=sum+money; //妈妈每一天给二狗2.5元
if(day%5==0){ //如果天数是5的倍数
sum=sum-cost;//二狗会花钱
}
//输出钱的信息
System.out.println(“第”+day+“天的钱是:”+sum);
}
//输出多少天
System.out.println(“day=”+day);
}
循环中break(必会):
功能:能够强制退出循环
示例4: 看代码,输出结果
for(int i=1;i<=10;i++){
if (i%2==0) {
break;
}
System.out.println(i);
}
示例5: 看代码,输出结果
int sum=0;
for(int i=1;i<=10;i++){
sum=sum+i; sum=10
if (sum>=10) {
break;
}
}
System.out.println(“i=”+i+" sum="+sum);
示例6:让用户输入一个数,判断这个数是不是素数
素数是指: 该数只能被1和它本身整除
比如:7是素数,9不是素数
思路:如果这个数是n,则要将2....n-1之间的数 都和这个n进行比较,
看存不存在一个数能够被n整除,也即只要找到一个数能够整数,就退出循环.
n=9
public static void main(String[] args) {
int n=7;//保存要判断的数
boolean isPrime=true;//先假设是素数…
for(int i=2;i<n;i++){
if(n%i==0){ //如果找到一个数被整除
isPrime=false;//将标志做为false;
break;//并且中止循环.
}
}
//循环之后再判断
if(isPrime){ //说明是素数
System.out.println(“是素数!”);
}else{
System.out.println(“不是素数!”);
}
}
算法理解:妈妈如何判断小明是否游泳
1.没有游泳之前,在身上用笔画一个圈—相当于boolean isPrime=true;//先假设没有游泳
2.小明去上学—相当于for循环
3.如果小明游泳了,则圈就没有了—相当于
if(n%i==0){ //如果找到一个数被整除
isPrime=false;
4.回家之后,妈妈检查身体—相当于
//循环之后再判断
if(isPrime){ //说明是素数
System.out.println(“是素数!”);
}else{
System.out.println(“不是素数!”);
}
do…while循环的基本格式(必会):
do {
循环体语句;
}while(判断条件语句);
示例1:
int x = 0;
do {
System.out.println(“HelloWorld”);
x++;
}while(x<10);
示例2:
int x=1,y=4;
do {
x+=y;
y–;
} while(y>1);
System.out.println(“x=”+x+" y="+y);
注意:
1.while后面要加分号
2.do…while循环至少执行一次循环体
3.while可能一次都不循环
循环总结:
那么,我们一般使用哪种循环呢?
1.优先考虑for,其次考虑while,最后考虑do…while
2.循环次数确定的用for,不确定的先用while…再用do…while
病毒程序:
while(true){ //会疯狂打开计算器,最后资源耗尽
Runtime.getRuntime().exec(“c:\windows\system32\calc.exe”);
}
上一篇: 让所有警察都崩溃的司机
下一篇: C语言——输出一个数的二进制序列