java基础知识之流程控制

大一,正在学习java中,文章有什么不对的地方,欢迎大家交流指正,共同学习进步!

文章目录

  • 流程控制
    • 1.顺序结构
    • 2. 分支结构
      • 1.if结构
      • 2.switch
    • 3.循环结构
      • 1.for结构
      • 2.while结构
      • 3.do...while结构

流程控制

1.顺序结构

  1. 是最基本,最简单的流程控制,默认执行结构,代码从上到下,从左到右执行

  2. 代码示例:

    public class  test{
    	public static void main(String[] args){
    			System.out.println("开始执行");
    			System.out.println(1);
    			System.out.println(2);
    			System.out.println(3);
    			System.out.println("执行结束");
    		   
    	}
    }
    

2. 分支结构

1.if结构

1.三种形式:

  • if
  • If…else
  • if…else if…else if…else
  1. 格式:
  • if(布尔类型表达式){
    ​ 语句体
    }
  • if(条件表达式){
    语句1;
    }else{
    语句2;
    }
  • if(条件表达式1){
    语句1;
    }else if(条件表达式2){
    语句2;

}else if(条件表达式3){
语句3 ;
}…else{
语句n;
}

  1. 执行流程:
  • if后跟着的小括号中表达式如果结果true,就执行if后大括号中语句

  • if后小括号中表达式如果为false,就跳过if语句,执行后面的代码

  • 如果if后条件表达式为true,就执行语句1,然后跳出if…else级联语句

  • 如果if后条件表达式为false,判断条件表达式2, 如果条件表达式2为true,就执行语句2;然后跳出if…else级联语句

  • 如果条件表达式2为false,判断条件表达式3, 如果条件表达式3为true,就执行语句3,然后跳出if…else级联语句

  • …n;

  • 最后如果1到n-1条件表达式都为false, 就执行else语句中语句n;

注意事项:

  • 小括号中表达式必须返回boolean类型结果

  • if后面的小括号后不需要要加分号,一旦加了分号if语句到分号就结束;

  • 如果if语句后大括号中只有一条执行语句,可以省略大括号,但是建议加上大括号;如果有多条语句是不能省略大括号;

  1. 执行流程图:

    java基础知识之流程控制_第1张图片

  2. 代码案例:

import java.util.Scanner;
public class test {
	public static void main(String[] args) {
				Scanner sc=new Scanner(System.in);
				System.out.println("请输入你的年龄:");
				int age=sc.nextInt();
				if(age>=18){
					System.out.println("你可以上网");
				}else {
					System.out.println("未成年不可以上网");
				}
				System.out.println("欢迎下次光临");
	}	
}

2.switch

  1. switch语句:根据某个变量的值,判断符合那个条件,选择执行某个情况

    switch(变量){
    case 值1: 语句体1;

    break;

    case 值2: 语句体2;
    break;

    default: 语句体n+1;

    break;

  • case后表达式要求: 只能是常量表达式

  • jdk1.5之前: byte, short, char, int

  • jdk1.5 支持枚举类型常量

  • jdk7: String

  • case后只能跟常量,而且case的常量不能重复

  • default语句可以省略,如果不写,就有可能哪一种情况都不执行,建议加上

  • default位置: 可以放在switch语句的任何位置,但是习惯放在最下面

  • switch语句结束条件: 第一种碰到break; 第二种碰到switch的结束右大括号;

  • 如果多个case对应处理方式是一样的, 可以在最下面的case后写一个break, 在最下写处理情况,简化代码量

  1. 执行流程图:
    java基础知识之流程控制_第2张图片

  2. 代码案例:

    import java.util.Scanner;
    
    public class test {
    	public static void main(String[] args) {
    	/* case 穿透			
    	输入2022年一个月份, 输出当月的天数
    	1,3,5,7,8,10,12      31天
    	2                    28天
    	4,6, 9, 11           30天
    	*/
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入一个2022年的月份");
    		int month = sc.nextInt();	
    		switch(month){
    		 case 1: case 3: case 5: case 7: case 8: case 10: case 12:
    		 System.out.println(month+"月有31天");
    		 break;
    		 case 2:
    		 System.out.println(month+"月有28天");
    		 break;
    		 case 4: case 6: case 9: case 11:
    		 System.out.println(month+"月有30天");
     		 break;
    		 default:
    			 System.out.println("你输入的月份有误");
    		 break;
    		}
    	}		
    }
    
  • 相同点:if语句和switch语句都可以实现分支结构

  • 不同点:

  • if语句的格式比较灵活,更加强大,用的最多. 同样的情况switch实现可能比较复杂,而且能用switch的实现都可以使用if语句替换;

  • if语句一般用来判断连续性的值, switch语句更多是处理一些离散性的情况;

  • if语句每次都要条件表达式的值, switch语句只需要获取一次表达的值,所以switch在这一点上效率比较高;


3.循环结构

1.for结构

  1. 格式
  • for(变量初始化; 循环判断条件;循环变量的增量){

​ 循环体语句;

}

  1. 执行流程:
  • 执行循环变量初始化

  • 计算循环判断条件的表达式(boolean类型结果)

  • 如果计算结果为false, 直接结束for循环语句

  • 如果计算结果为true, 就执行循环体语句;

  • 执行循环变量的增量

  • 回到第2步

  1. 执行流程图:

java基础知识之流程控制_第3张图片

2.while结构

  1. 格式:
    循环变量初始化;
    while(循环判断条件){
    循环体语句;
    循环变量增量;
    }

  2. 执行流程:

  • 循环变量初始化
  • 执行循环判断条件, 结果为false, 结束while循环
  • 执行循环判断条件, 结果为true, 执行循环体语句
  • 接着执行循环变量增量
  • 回到第2步

注意事项:

  • 循环判断条件表达式必须返回boolean类型数据

  • 不要忘记在大括号中写循环变量的增量

  1. 执行流程图:

java基础知识之流程控制_第4张图片


3.do…while结构

  1. 格式:
    循环变量初始化;
    do{
    循环体语句;
    循环变量增量;
    }while(循环判断条件);

  2. 执行流程:

  • 先制性循环变量初始化
  • 再执行循环体语句, 在执行循环变量增量
  • 执行循环判断条件, 结果为false, 结束do…while循环
  • 执行循环判断条件, 结果为true
  • 执行循环体语句, 在执行循环变量的增量
  • 回到第3步
  • 不管循环判断条件是否成立, 都会先执行一次循环体

  • while后的小括号后面必须加分号;

  • 循环判断条件也必须是boolean类型表达式

  1. 执行流程图:

java基础知识之流程控制_第5张图片

你可能感兴趣的:(笔记,java,开发语言,后端)