Java三大流程控制语句之for循环及变形记

Java三大流程控制语句之for循环及变形记

一、for循环

应用场景:重复性的工作

1.语法结构:

		for(初始化变量;判断条件;更新变量){
			...代码块/循环体...
		}

2.基本使用

1.初始化变量
2.判断条件 – 必须是boolean值
true – 执行代码块 -> 更新变量 -> 重复第2个步骤
false - 跳出整个循环语句

3.深入使用

1.打印5遍"努力学习,天天向上"

public class 文件名{
    public static void main(String[] args){
			for(int i = 1;i<=5;i++){
				System.out.println("努力学习,天天向上");
			}
    }
}

2.打印0~10的数字

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

3.打印0~10之内的偶数

public class 文件名{
    public static void main(String[] args){
			//解决方案1:
			for(int i = 0;i<=10;i++){
				if(i % 2 ==0 ){
					System.out.println(i);
				}
			}
			/**解决方案2:
			for(int i = 0;i<=10;i+=2){
				System.out.println(i);	
			}
			*/
    }
}

4.打印10~0的数字

public class 文件名{
    public static void main(String[] args){
			for(int i = 10;i>=0;i--){
				System.out.println(i);
			}
		
    }
}

5.打印10~0之内的奇数

public class 文件名{
    public static void main(String[] args){
			//解决方案1:
			for(int i = 10;i>=0;i--){
				if(i % 2 != 0){
					System.out.println(i);
				}
			}
			/**解决方案2:
			for(int i = 9;i>=0;i-=2){
				System.out.println(i);
			}
			*/
    }
}

4.小结:

初始变量不一定从1开始

更新变量不一定++,也可以–,还可以+=、-=

二、死循环

public class 文件名{
    public static void main(String[] args){
			for(;;){
				System.out.println("死循环");
			}
    }
}

三、伪死循环

public class 文件名{
    public static void main(String[] args){
			for(int i = 10;i>0;i++){//考虑int的取值范围:达到最大值再++就变成负数了
				System.out.println("伪死循环");
			}	
    }
}

四、for循环变形记

1.基本使用

public class 文件名{
    public static void main(String[] args){
			int i = 0;
			for(;i<5;){
				System.out.println(i);
				
				//i++;和++i;没有区别(因为分号为执行语句的结束,不管先加还是后加都给我加)
				//i++;
				++i;
			}
			
			System.out.println("i = " + i);	
    }
}

2.深入使用

1.循环录入5次int类型的数字,输出总和

import java.util.Scanner;
public class 文件名{
    public static void main(String[] args){
			Scanner scan = new Scanner(System.in);
			int sum = 0;
			for(int i = 1;i<=5;i++){
				System.out.println("请输入第" + i + "个数字:");
				int num = scan.nextInt();
				
				sum += num;//累加总和
			}
			
			System.out.println("总和为:" + sum);
    }
}

2.循环录入5门课成绩,计算平均分

import java.util.Scanner;
public class 文件名{
    public static void main(String[] args){
			Scanner scan = new Scanner(System.in);
			double sum = 0;
			for(int i = 1;i<=5;i++){
				System.out.println("请输入第" + i + "门成绩:");
				double score = scan.nextDouble();
				sum += score;//累加总和
			}
			System.out.println("平均分为:" + (sum/5));
    }
}

3.循环录入5次int类型的数字,输出最大值

import java.util.Scanner;
public class 文件名{
    public static void main(String[] args){
			Scanner scan = new Scanner(System.in);
			//假设输入的第一个数字为最大值
			System.out.println("请输入第1个数字:");
			int max = scan.nextInt();
			for(int i = 2;i<=5;i++){
				System.out.println("请输入第" + i + "个数字:");
				int num = scan.nextInt();
				if(max < num){
					max = num;
				}
			}	
			System.out.println("最大值为:" + max);
    }
}

五、for循环嵌套

需求1:打印下列图形3*4矩形

		****
		****
		****
public class 文件名{
    public static void main(String[] args){
			for(int i = 0;i<3;i++){//控制行数
			
	//方案一:System.out.println("****");//输出+换行
			//方案二:	
				for(int j = 0;j<4;j++){//控制列数
					System.out.print("*");
				}
				
				System.out.println();//换行
			}
    }
}

需求2:打印下列图形靠左直角三角形

		*		i = 0
		**		i = 1
		***     i = 2
		****	i = 3
		*****	i = 4
public class 文件名{
    public static void main(String[] args){
			for(int i = 0;i<5;i++){
			
				for(int j = 0;j<=i;j++){
					System.out.print("*");
				}
				
				System.out.println();
			}
    }
}

需求3:打印下列图形倒靠左直角三角形

		*****
		****
		***
		**
		*
public class 文件名{
    public static void main(String[] args){
			for(int i = 0;i<5;i++){//i = 0
				for(int j = 0;j<5-i;j++){
					System.out.print("*");
				}		
				System.out.println();
			}	
    }
}

需求4:打印下列图形倒靠右直角三角形

		*****
		 ****
		  ***
		   **
		    *
public class 文件名{
    public static void main(String[] args){
        		for(int i = 0;i<5;i++){
				for(int k = 0;k<i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<5-i;j++){
					System.out.print("*");
				}
				System.out.println();
			}
    }
}

需求5:打印下列图形三角形

		   *
		  ***
		 *****
		*******
public class 文件名{
    public static void main(String[] args){
			for(int i = 0;i<4;i++){	
			for(int k = 0;k<3-i;k++){
					System.out.print(" ");
				}	
				for(int j = 0;j<i*2+1;j++){
					System.out.print("*");
				}
				System.out.println();
			}
    }
}

需求6:打印下列图形倒三角形

		*******
		 *****
		  ***
		   *
public class 文件名{
    public static void main(String[] args){
			for(int i = 0;i<4;i++){			
				for(int k = 0;k<i;k++){
					System.out.print(" ");
				}		
				for(int j = 0;j<7-i*2;j++){
					System.out.print("*");
				}		
				System.out.println();
			}   		  
    }
}

需求7:打印下列图形空心三角形

		   *
		  * *
		 *   *
		*******
public class 文件名{
    public static void main(String[] args){
			for(int i = 0;i<4;i++){
				for(int k = 0;k<3-i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<i*2+1;j++){			
		//第一行 或 最后一行 或 每行的第一列 或 每行的最后一列
					if(i==0 || i==3 || j==0 || j==i*2){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}	
				}
				System.out.println();
			}		  
    }
}

需求8:打印下列图形倒空心三角形

		*******
		 *   *
		  * *
		   *
public class 文件名{
        public static void main(String[] args){
			for(int i = 0;i<4;i++){		
				for(int k = 0;k<i;k++){
					System.out.print(" ");
				}	
				for(int j = 0;j<7-i*2;j++){
		//第一行 或 最后一行 或 每行的第一列 或 每行的最后一列
				if(i==0 || i==3 || j==0 || j==7-i*2-1){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}
				}	
				System.out.println();
			}   		  
    }
}

需求9:打印九九乘法表

public class 文件名{
        public static void main(String[] args){
            /**方式1:
			for(int i = 1;i<=9;i++){
			for(int j = 1;j<=i;j++){
	System.out.print(j + "x" + i + "=" + (i*j) + "\t");
				}
				System.out.println();
			}
		*/
		方式2for(int i = 1;i<=9;i++){
				for(int k = 1;k<i;k++){
					System.out.print("\t");
				}
				for(int j = i;j<=9;j++){
	System.out.print(i + "x" + j + "=" + (i*j) + "\t");
				}
				System.out.println();
			} 		  
    }
}

你可能感兴趣的:(Java基础)