首页 > 编程语言 >JavaSE【3】-流程控制

JavaSE【3】-流程控制

时间:2023-05-05 15:55:59浏览次数:32  
标签:语句 控制 流程 System else println JavaSE 表达式 out

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与是否循环无关,在程序代码中都可以进行使用,表示的是函数的终止;

五、学习方法和使用场景

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

标签:语句,控制,流程,System,else,println,JavaSE,表达式,out
From: https://www.cnblogs.com/hardrockstudy/p/17374367.html

相关文章

  • 电机控制技术
     电机控制技术是现代工业领域中不可或缺的一项技术。电机是将电能转化为机械能的装置,而电机控制技术则是通过对电机工作状态的监测和控制,来实现对机械系统速度、位置、力矩等参数的精确控制。本文将从电机控制的基本原理、控制方式以及应用领域等方面进行阐述。一、电机控制的基本......
  • m基于遗传优化的时域声辐射模态的振动控制算法的matlab仿真
    1.算法仿真效果matlab2013b仿真结果如下:         2.算法涉及理论知识概要2.1遗传优化        长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执......
  • 基于simulink的MPPT控制器性能仿真,MPPT使用S函数实现
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要MPPT控制器的全称是“最大功率点跟踪”(MaximumPowerPointTracking)太阳能控制器,是传统太阳能充放电控制器的升级换代产品。MPPT控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率......
  • 基于simulink的MPPT控制器性能仿真,MPPT使用S函数实现
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要         MPPT控制器的全称是“最大功率点跟踪”(MaximumPowerPointTracking)太阳能控制器,是传统太阳能充放电控制器的升级换代产品。MPPT控制器能够实时侦测太阳能板的发电电压,并追踪......
  • Swift下Data处理全流程:从网络下载,数模转换,本地缓存到页面使用
    Swift下将网络返回json数据转换成struct假如网络请求返回的数据结构是一个深层嵌套的Json首先要通过key-value取出这个json中的数据源//将返回的json字符串转Dictoryletjson="""{"name":"jack","age":20,"description":"Astudent."......
  • 1-ORB-SLAM3论文重点导读及整体算法流程梳理-归纳
    摘要ORB-SLAM3是第一个能够执行纯视觉、视觉-惯导以及多地图的SLAM系统,可以在单目,双目以及RGB-D相机上使用针孔以及鱼眼模型。本文主要新颖之处在于基于特征的VIO紧耦合系统,该系统完全依赖于最大后验估计,即使在IMU初始化阶段也是如此。本系统在小型和大型、室内和室外环境中实时......
  • JavaSE【2】-基础语法
    JavaSE【2】-基础语法一、Java数据类型在Java语言中将所有的数据类型划分为两大类:八大基本数据类型复合引用类型八大基本数据类型:|------数值型|-整数类型:byte(字节)、short(短整型)、int(整型)、long(长整型)......
  • JavaSE【1】-环境搭建
    JavaSE【1】-环境搭建一、Java开发环境的搭建所谓的Java开发环境的搭建,其实就是构建出一套可以编译和执行Java应用程序的软件工具;在Java开发环境的搭建中需要安装JDK的软件工具(Java开发工具包);1.1、搭建的步骤1、下载JDK安装包(要求是不低于1.7的版本);2、安装JDK软件(非C盘即可......
  • 关于单片机控制电压检测的学习
    1.使用单片机内自带的ADC模块进行检测问题在于频率是否合适:在实验2的基础上得到结论,当两线圈距离在2cm左右时,工作频率将会超过1MHz。采样的最好结果是采集尽可能多的点,这样才能绘制出真正反映实际情况的曲线。目前想要完成的是实验3的demo,采用电阻分压和二极管整流,直接利用......
  • nginx控制浏览器缓存
    创建一个html文件vimcache.html<html><body><h1>Hello,Nginx~!~</h1></body></html>配置conf文件,这里配置在imooc.conf,可以自定义location/static{alias/home/imooc;}检查语......