Bootstrap

史上最全讲解:JAVA循环语句

史上最全讲解:JAVA循环语句

for循环

  • for循环格式:
    for(条件初始化;条件判断;条件变化){
    重复执行的代码;
    }
    条件初始化: 声明一个变量,并第一次赋值 int i=1
    条件判断: 对条件|变量i进行判断,如果满足要求,结果为true,就可以执行这一次循环体语句{},如果结果为false,不满足要求,这一次执行不了并且循环结束
    条件变化: 变量i自身值的改变
    for循环的执行流程:
    1.条件初始化
    2.条件判断
    3.不满足条件结束循环,满足条件执行,执行循环体语句
    4.条件变化
    从第二次循环开始,条件初始化就不执行了
    如果循环体语句只有一句,前后的{}可以省略
/*
 * for循环练习
 */
public class ForPractice03 {
	public static void main(String[] args) {
		//求1-100的和,求1-100的偶数和,求1-100的奇数和
		int sum=0; //所有数的和
		int sum1=0 ; //所有偶数和
		int sum2=0 ; //所有奇数和
		for(int i=1;i<=100;i++){
			sum+=i; //所有数的和
			if(i%2==0){
				sum1+=i;
			}else{
				sum2+=i;
			}
		}
		System.out.println("1-100的和:"+sum);
		System.out.println("1-100的偶数和:"+sum1);
		System.out.println("1-100的奇数和:"+sum2);
		sum=0;
		//1-50当中能被4整除的数的和
		for(int i=1;i<=50;i++){
			if(i%4==0)
				sum += i;	
		}
		System.out.println("1-50当中能被4整除的数的和: " + sum);
		//求出 1-100当中既能被3整除又能被5整除还能被2整除的和, 
		sum = 0;
		for(int i=1;i<=100;i++){
			if(i%3==0 && i%2==0 && i%5==0){
				sum += i;
			}
		}
		System.out.println("1-100当中既能被3整除又能被5整除还能被2整除的和: " + sum);
		
	    //求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
		sum = 0;
		for(int i=1;i<=100;i++){
			if(i%3==0 || i%2==0 || i%5==0){
				sum += i;
			}
		}
		System.out.println("1-100当中能被3整除或者能被5整除或者能被2整除的和: " + sum);
		int factorial = 1;
		//求5的阶乘  5! 5*4*3*2*1 
		for(int i=5;i>0;i--){
			factorial *= i;
		}
		System.out.println("5的阶乘: " + factorial);
		
		//请找出[100,300]之间能被5整除的所有数,每行输出8个数
		int count=0;
		for(int i=100;i<=300;i++){
			if(i%5==0){
				System.out.print(i+" ");
				count++;
				if(count==8){
					System.out.println();
					count=0;
				}
			}
		}
		System.out.println();
	}
}

在这里插入图片描述

while循环

  • 格式:
    while(条件判断){
    循环体语句;
    条件变化;
    }
    注意:能够使用for循环的都能使用while,可以互相转换
    确定循环次数|变量变化区间–>推荐使用for
    条件不需要我们声明,变化也不需要我们声明 -> 推荐使用while
/*
 * While循环练习
 */
public class WhilePractice03 {
	public static void main(String[] args) {
		//求1-100的和,求1-100的偶数和,求1-100的奇数和
		int sum = 0;
		int sum1 = 0;
		int sum2 = 0;
		int i = 1;
		while(i<=100){
			sum += i;
			if(i % 2 == 0){
				sum1 += i;
			}else{
				sum2 += i;
			}
			i++;
		}
		System.out.println("1~100之间所有数的和为: " + sum);
		System.out.println("1~100之间所有数的偶数和为: " + sum1);
		System.out.println("1~100之间所有数的奇数和为: " + sum2);
		//System.out.println(i);
				
		//1-50当中能被4整除的数的和
		int sum3 = 0;
		i = 1;
		while(i<=50){
			if(i % 4 != 0){
				sum3 += i;
			}
				i++;
		}
		System.out.println("1-50当中能被4整除的数的和: " + sum3);
	
	
		//求出 1-100当中既能被3整除又能被5整除还能被2整除的和, 
		int sum4 = 0;
		i = 1;
		while(i <= 100){
			if(i % 3 == 0 && i % 5 == 0 && i % 2 == 0){
				sum4 += i;
			}
			i++;
		}
		System.out.println("求出 1-100当中既能被3整除又能被5整除还能被2整除的和: " + sum4);
		
	    //求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
		int sum5 = 0;
		i = 1;
		while(i <= 100){
			if(i % 3 == 0 || i % 5 == 0 || i % 2 == 0){
				sum5 += i;
			}
			i++;
		}
		System.out.println("求出 1-100当中能被3整除或者能被5整除或者能被2整除的和: " + sum5);

		//求5的阶乘  5! 5*4*3*2*1 
		int factorial = 1;
		i = 1;
		while(i <= 5){
			factorial *= i;
			i++;
		}
		System.out.println("求5的阶乘: " + factorial);
	
		//请找出[100,300]之间能被5整除的所有数,每行输出8个数
		int j = 1;
		System.out.println("[100,300]之间能被5整除的所有数为: ");
		i = 1;
		while(i <= 300){
			if(i % 5 == 0){
				if(j % 8 == 1)
					System.out.print(i);
				else{
					System.out.print(","+i);
						if(j % 8 == 0)
						System.out.println();
				}
			    j++;
			}
			i++;
		}
	}
}

在这里插入图片描述

do while 循环

  • do…while与while之间的区别:
    do…while 无论是否满足条件都至少执行一次
    while: 先判断,满足才执行,不满足结束
    do…while:先执行,后判断,判断满足条件继续下一次执行,不满足条件结束
  • 格式
    条件初始化;
    do{
    语句体;
    条件变化;
    }while(条件判断);
/*
 * While循环练习
 */
public class DoWhilePractice03 {
	public static void main(String[] args) {
		//求1-100的和,求1-100的偶数和,求1-100的奇数和
		int sum = 0;
		int sum1 = 0;
		int sum2 = 0;
		int i = 1;
		do{
			sum += i;
			if(i % 2 == 0){
				sum1 += i;
			}else{
				sum2 += i;
			}
			i++;
		}while(i<=100);
		System.out.println("1~100之间所有数的和为: " + sum);
		System.out.println("1~100之间所有数的偶数和为: " + sum1);
		System.out.println("1~100之间所有数的奇数和为: " + sum2);
		//System.out.println(i);
				
		//1-50当中能被4整除的数的和
		int sum3 = 0;
		i = 1;
		do{
			if(i % 4 != 0){
				sum3 += i;
			}
				i++;
		}while(i<=50);
		System.out.println("1-50当中能被4整除的数的和: " + sum3);

		//求出 1-100当中既能被3整除又能被5整除还能被2整除的和, 
		int sum4 = 0;
		i = 1;
		do{
			if(i % 3 == 0 && i % 5 == 0 && i % 2 == 0){
				sum4 += i;
			}
			i++;
		}while(i <= 100);
		System.out.println("求出 1-100当中既能被3整除又能被5整除还能被2整除的和: " + sum4);
		
	    //求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
		int sum5 = 0;
		i = 1;
		do{
			if(i % 3 == 0 || i % 5 == 0 || i % 2 == 0){
				sum5 += i;
			}
			i++;
		}while(i <= 100);
		System.out.println("求出 1-100当中能被3整除或者能被5整除或者能被2整除的和: " + sum5);

		//求5的阶乘  5! 5*4*3*2*1 
		int factorial = 1;
		i = 1;
		do{
			factorial *= i;
			i++;
		}while(i <= 5);
		System.out.println("求5的阶乘: " + factorial);
	
		//请找出[100,300]之间能被5整除的所有数,每行输出8个数
		int j = 1;
		System.out.println("[100,300]之间能被5整除的所有数为: ");
		i = 1;
		do{
			if(i % 5 == 0){
				if(j % 8 == 1)
					System.out.print(i);
				else{
					System.out.print(","+i);
						if(j % 8 == 0)
						System.out.println();
				}
			    j++;
			}
			i++;
		}while(i <= 300);
	}
}

在这里插入图片描述

  • 99乘法表
public class Practice12{
	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();
		}
	}
}

在这里插入图片描述

break,continue关键字

break 和 continue ,return之间的区别:
break:
作用: 结束,终止
应用场景: switch语句,循环中,结束最内层循环
continue:
作用: 结束本次循环,直接进入到下一次循环中
应用场景: 循环中
return
也可用于非循环语句并且可以返回一个值

public class Practice11{
	public static void main(String[] args){
		System.out.print("使用break输出的是: ");
		for(int i=1;i<=5;i++){
			if(i == 3){
				break;
			}
			System.out.print(i + " ");
		}
		System.out.println();
		System.out.print("使用continue输出的是: ");
		for(int i=1;i<=5;i++){
			if(i == 3){
				continue;
			}
			System.out.print(i +" ");
		}
	} 
}

在这里插入图片描述

;