while循环的使用import java.util.Scanner;
class test01{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int m=sc.nextInt();
int n=sc.nextInt();
int max=(m>=n)?m:n;
int min=(m<=n)?m:n;
for(int i=min;i<=min;i–){
if(m%i0&&n%i0){
System.out.println(i);
break;
}
}for(int i=max;i>=max;i++){ if(i%m==0&&i%n==0){ System.out.println(i); break; } }}
}
while的循环结构
①
while(②){
③;
④;
}
执行过程:①–②–③–④–②–③–④–…
说明:
1.写while循环千万要小心不要丢了迭代条件。一旦丢了迭代条件,就可能导致死循环
2.我们写程序,要避免出现死循环
3.for循环和while循环是可以互相转换的!
区别:for循环和while循环的初始化条件部分的作用范围不同
算法:有限性
do-while循环结构do-while的循环结构
①
do{
③;
④;
}while(②);
说明:
1.do-while循环至少会执行一次循环体
使用较少
不在循环条件部分限制次数结构for( ; ; ) 或 while(true)
结束循环的两种方式方式一:循环条件部分返回false
方式二:在循环体中,执行break
循环嵌套将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环。
内层循环遍历一遍,外层循环便利一次
例题:
100以内的所有质数的输出import java.util.Scanner;
class lingxing{
public static void main(String[] args){for(int i=1;i<=5;i++){ for(int j=1;j<=5-i;j++){ System.out.print(" "); } for(int x=1;x<=i*2-1;x++){ System.out.print("*"); } System.out.print("n"); } for(int i=4;i>=1;i--){ for(int j=1;j<=5-i;j++){ System.out.print(" "); } for(int x=1;x<=i*2-1;x++){ System.out.print("*"); } System.out.print("n"); }}
}
质数:素数,只能被1和它本身整除的自然数。------->从2开始到数字为止,都不能被这个数字整除
思路一:使用一个boolean类型来作为标志,用if进行判断。
class sunum{
public static void main(String[] args){
boolean flag=true;
for(int i=2;i<100;i++){
for(int j=2;j
if(i%j==0){
flag=false;
}
}
if(flag){
System.out.println(i);
}
flag=true;
}}
}
优化一:用break,作用于不是素数的数
class sunum1{
public static void main(String[] args){
long startTime=System.currentTimeMillis();
boolean flag=true;
for(int i=2;i<100;i++){
for(int j=2;j
if(i%j==0){
flag=false;
break;
}
}
if(flag){
System.out.println(i);} flag=true; } long endTime=System.currentTimeMillis(); System.out.println(endTime-startTime);}
}
优化二:将范围缩小
break和continue关键字的使用class sunum2{
public static void main(String[] args){
long startTime=System.currentTimeMillis();
boolean flag=true;
int count = 0;
for(int i=2;i<10000;i++){
for(int j=2;j
if(i%j==0){
flag=false;
break;
}
}
if(flag){
count++;
}
flag=true;
}
System.out.println(count);
long endTime=System.currentTimeMillis();
System.out.println(endTime-startTime);
}
适用范围 循环中使用的作用(不同点) 相同点
break switch-case
循环结构中 结束当前循环 关键字后面不能声明执行语句
continue 循环结构中 结束当次循环 关键字后面不能声明执行语句
+++
break默认跳出包裹此关键字最近的一层循环
break和continue来选择需要跳出的循环,在循环前面加上标签,之后如 break 标签;
如图:



