JavaSE【3】-流程控制

发布时间 2023-05-05 15:50:08作者: 疏影橫斜水清淺

JavaSE【3】-流程控制

引导!

在编写程序代码的过程中,我们肯定不能只是一味的按照程序自上而下的顺序来执行程序,这样所能实现的功能特别的有限,所以我们都需要借助于一些流程走向的控制语句来针对程序进行操控。在程序设计中共有3大结构:顺序结构 、选择结构 、 循环结构。

一、顺序结构

所谓的顺序结构就是程序按照自上而下的顺序进行依次执行,能够实现的功能非常简单。

	public static void main(String[] args) {
		System.out.println("1");
		System.out.println("2");
		System.out.println("3");
		System.out.println("4");
		System.out.println("5");
		System.out.println("6");
	}

二、选择结构

表达式的概念:所谓的表达式就是由操作数和运算符组成的一个序列,最简单的表达式可以是一个值 或者  一个变量;
3
a
a+b
a<b
a<b&&c>d

2.1、IF语句

if(表达式){
    语句1;
}
语句2;

提示!

表达式:if语句中的表达式的结果一定是boolean类型;

2.2、IF-ELSE语句

if(表达式){
    //语句1;
}else{
    //语句2;
}
语句3;

提示!针对if-else而言,成立的时候执行语句1,不成立的时候也存在相应的操作,就是语句2;

2.3、IF-ELSE-IF语句

if(表达式1){
    
}else if(表达式2){
    
}else if(表达式3){
    
}.......
else{
    
}  

注意!

针对if-else -if语句而言,只要有一个表达式成立,则后续的表达式不进行检查(短路板模式),有利于提升性能。

多个并列的if语句和 if-else-if语句可以实现相同的功能,但是没有if-else-if的效率高。

public class Demo02 {
	
	public static void main(String[] args) {
		
		System.out.println("请输入成绩:");
		
		Scanner   sc = new  Scanner(System.in);
		
		int  score = sc.nextInt();
		
/*	   if(score<=100&&score>=90){
			System.out.println("优秀!");
		}
		
		if(score<90&&score>=80){
			System.out.println("良好!");
		}
		
		
		if(score<80&&score>=70){
			System.out.println("一般!");
		}
		
		
		if(score<70&&score>=60){
			System.out.println("及格!");
		}
		
		if(score<60){
			System.out.println("不及格!");
		}
		*/
		
	   if(score<=100&&score>=90){
			System.out.println("优秀!");
		}else if(score<90&&score>=80){
			System.out.println("良好!");
		}else if(score<80&&score>=70){
			System.out.println("一般!");
		}else if(score<70&&score>=60){
			System.out.println("及格!");
		}else{
			System.out.println("不及格!");
		}
		System.out.println("end!");	
		
	}
}

2.4、IF-ELSE嵌套语句

if(表达式1){
    if(表达式2){
        //语句1;
    }else{
        //语句2;
    }
}else{
    //语句3;
    if(表达式3){
        //语句4;
    }else{
        //语句5;
    }
}

2.5、SWITCH-CASE语句

switch(表达式){
    case 值1:
        //语句;
        break;
    case 值2:
        //语句;
        break;
    case 值3:
        //语句;
        break;
    ..........
    default:
        //语句;
        break;
}

注意事项!

1、switch后面的表达式,可以支持的类型有:byte、short、int、char、String 、 enum(枚举)类型;

2、case后面的值,只能是一个常量值,不能是变量,并且是唯一性的;

3、在某些业务场景中,我们根据需求会手动省略 break语句,这时就会产生所谓的“case的穿透”现象,直到

​ 遇见下一个break为止,程序才会跳出;

4、default可以有,也可以省略,都是正常的语法规则;

枚举定义

//定义的一个枚举
//枚举:其实就是将一系列需要使用的比较固定的数据进行打包的一种称谓。
public enum Sex {
	    男,
	    女
}

switch-case语句中的使用

switch (Sex.女) {
		
		case  男:
			System.out.println("是男性!");
			break;
		case  女:
			System.out.println("是女性!");
			break;
		default:
			System.out.println("不是人类的性别!");
			break;
}

三、循环结构

3.1、while循环

while(表达式){
    //语句;
    //一定要存在改变条件的语句,否则就是一个死循环;
}

注意!

while后面的表达式一定是boolean类型的;

特点:首先进行条件的判断,再确定是否执行循环体,可能1次也不会循环;

3.2、do-while循环

do{
    //语句;
    //一定要存在改变条件的语句,否则就是一个死循环;
}while(表达式);

注意!

while后面的表达式一定是boolean类型的;

特点:首先执行1次循环,再进行条件的判断,确定后续是否继续进行循环;

3.3、for循环

for(初始化变量;条件判断;条件改变){
    //语句;
}

注意!

for循环中的【;】号,是不能省略的;

	    //标准语句的使用方式
        for(int i=1;i<=5;i++){
             System.out.println(i+"次执行!"); 
        }

        //死循环(不知道从哪里开始,也不知道到哪里结束,更不知道中间如何变化)
		/*for(;;){
			
		}*/
		
		//选择进行部分省略
		/*int i = 1;
		for(;i<=10;){
			i++;
		}*/
		
		
		//同时使用多个变量来 定义循环
		for(int i=0,j=6;i<=6;i++,j--){
			System.out.println(i+"+"+j+"="+(i+j));
		}		

四、跳转语句

continue 、 break 和 return 都是属于跳转语句;

continue的使用:
continue只能使用在循环中,表示的是终止当前这1次循环(终止本次循环),后续的循环继续;

break的使用:
1、break可以用于switch-case语句中,表示跳出整个switch语句体;
2、break也可以用于循环中,表示终止后续的所有循环;

return的使用:
1、在程序中独立出现return表示的是将整个方法(函数)终止执行;
2、用于在有返回值的方法中,表示返回一个兼容返回类型的数据值,(返回到方法的调用处);
continue:
public static void main(String[] args) {
		
		for(int i=1;i<=5;i++){
			
			if(i==3){
				continue; 
			}
			
			System.out.println("这是第"+i+"次循环!");
		}
		
		System.out.println("循环结束了!");
		
	}

break
public static void main(String[] args) {
		
		for(int i=1;i<=5;i++){
			
			if(i==3){
				break; 
			}
			
			System.out.println("这是第"+i+"次循环!");
		}
		
		System.out.println("循环结束了!");
		
	}

return
public static void main(String[] args) {
		
		for(int i=1;i<=5;i++){
			
			if(i==3){
				return; 
			}
			
			System.out.println("这是第"+i+"次循环!");
		}
		
		System.out.println("循环结束了!");
		
	}

特别提醒!

return与是否循环无关,在程序代码中都可以进行使用,表示的是函数的终止;

五、学习方法和使用场景

针对各种流程控制语句,在编程的过程中无处不用,所以在日常编写代码的过程中不断的去熟悉,首先大家要解决的是语法层面的问题,其次是分析和解决问题的能力,其实和流程控制语句本身是没有关系的。前期通过一些任务的练习进行不断的强化。