Java小白--循环语句

229 阅读4分钟

循环语句分为:while,do while,for 为什么要使用循环语句呢?我们要执行大量的重复的逻辑代码时,它的作用就体现出来了!不然每一遍都要写一遍那就费老鼻子劲了.

1、while

语法:

while(条件表达式){

//语句块;

}

符合条件,循环继续执行;否则,循环退出

特点:先判断,再执行

1、计算1-100之间所有整数之和。5050

   public static void main(String[] args){
		int num=0;//用于计算总数
		int i=1;//增量
		while(i<=100){
			num+=i;
			i++;
		}
		System.out.println(num);
	}

2、计算10的阶乘 把+改成* 条件改成<=10就可以了

3、打印100以内所有的奇数,偶数和3的倍数(不包括100)

	public static void main(String[] args){
		int i=1;//增量
		int num=1;
		while(i<100){
			if(i%2==0){
				System.out.println("偶数:"+i);
			}else{
				System.out.println("奇数:"+i);
			}
			if(i%3==0){
				System.out.println("3的倍数:"+i);
			}
			i++;
		}
	}

2、dowhile

语法
do {

//循环操作  

}while ( 循环条件 );
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出

特点:先执行,再判断 这样呢do while会至少循环一次,而while可以一次都不执行

1、逆序输出10~0

	public static void main(String[] args){
		int i=10;
		do{
			//循环体
			System.out.println(i);
			i--;
		}while(i>=0);//循环条件
	}

2、Java阶乘求和 1!+2!+...+10!

	//阶乘求和
	public static void main(String[] args){
		int i=1;
		int num=0;//记录总和
		
		do{
			int j=1;
			int jcnum=1;
			while(j<=i){
				jcnum*=j;
				j++;
			}
			num+=jcnum;
			i++;
		}while(i<=10);//循环条件
		System.out.println(num);
	}

3、for循环

语法:
for(初始化参数;判断条件 ;更新循环变量){

   // 循环体;

}
关键字:continue 表示跳过当次循环,继续下次循环。

For循环的六种写法:
1、标准写法

public static void main(String[] args){
	for(int i=0;i<10;i++){
	    if(i==5){
	        continue;//跳过当次循环进入下次循环
	    }
	    //循环体
		System.out.println(i);
	}
}
//第一步 执行声明int i=0;只执行一次
//第二步 判断 i<10是否成立,如果成立,执行第三步,不成立跳出循环
//第三步 执行循环体
//第四步 执行i++;
//第五步 判断i<10;如果成立 执行第三步 不成立跳出循环,


2、表达式1省略,但在外部声明

	public static void main(String[] args){
		int i=0;//在外部声明
		for(;i<10;i++){//注意分号不能省略
			System.out.println(i);
			
		}
	}

3、表达式2省略,死循环,避免这种写法

	public static void main(String[] args){	
		for(int i=0;;i++){
			System.out.println(i);
			
		}
	}

4、表达式3省略,但是要声明在循环内部

	public static void main(String[] args){	
		for(int i=0;i<10;){
			System.out.println(i);
			i++;//表达式三
		}
	}

5、表达式1,3省略,但是要声明在循环的外部和内部

	public static void main(String[] args){	
		int i=0
		for(;i<10;){
			System.out.println(i);
			i++;
		}
	}

6、三个表达式都省略,死循环

	public static void main(String[] args){	
		int i=0
		for(;;){
			System.out.println(i);
			i++;
		}
	}

1、打印输出0~200之间能被7整除但不能被4整除的所有整数;

	public static void main(String[] args){	
		for(int i=0;i<200;i++){
			if(i%7==0&&i%4!=0){
				System.out.println(i);
			}
		}
	}

2、输出10个斐波那契(Fibonacci)数列:1 1 2 3 5 8 13 21 34 55。(特点:第1,2两个数值为1,从第三个数开始,该数是其前面两个数之和)

	public static void main(String[] args){	
		int n1=1;
		int n2=1;
		int next=0;
		System.out.print(n1+" "+n2+" ");
		for(int i=0;i<8;i++){
			next=n1+n2;
			System.out.print(next+" ");
			n1=n2;
			n2=next;
		}
	}

4、多重循环

上边有一个嵌套了,循环嵌套在工作中用的也是非常的多,也不用嵌套很多,常用的也就嵌套两到三层,如果太多了,可能就是你的程序的逻辑有问题。 多重循环指的是循环之间相互嵌套,被嵌套的称为内循环,嵌套内循环的称为外循环,循环可以多重循环。
下面来代码实操:
1、打印直角三角形*


思路分析: 把它想象成矩阵 先用外循环控制行数,内循环控制列数

	public static void main(String[] args){	
		//外循环控制行数
		for(int i=1;i<6;i++){
		//i和每一行的星星个数是有关系的i=当前行星星的个数
			for(int j=1;j<=i;j++){	
				System.out.print("*");
			}
			System.out.println();
		}
	}

2、打印九九乘法表

这个套路和第一题是一样的,只是输出的内容不一样

	public static void main(String[] args){	
		//外循环控制行数
		for(int i=1;i<9;i++){
			for(int j=1;j<=i;j++){
			    //输出的正好是列数*行数
				System.out.print(j+"*"+i+"="+(j*i)+"\t");
			}
			System.out.println();
		}
	}

3、打印直角三角形2

	public static void main(String[] args){	
		//外循环控制行数
		for(int i=1;i<5;i++){
		    //第一题输出只输出* 而这道题输出空格和* 每一行都输出五个东西
			for(int j=5;j>0;j--){
				if(j<=i)
				System.out.print("*");
				else
				System.out.print(" ");
			}
			System.out.println();
		}
	}

4、打印等腰三角形

这个题呢难度又加大了 ,思路先输出空格再输出*

	public static void main(String[] args){	
		//外循环控制行数
		for(int i=1;i<5;i++){
			//内循环输出空格
			for(int j=i;j<5;j++){
			
				System.out.print(" ");
			}
			//内循环输出*
			for(int j=1;j<=i*2-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}

System.out.println("点个赞吧!");