流程控制

流程控制

顺序结构

程序是从上往下进行加载的

选择结构(分支结构)

  • if else 语句

    1. if 单支情况

      if语句的格式:

      if(布尔类型表达式){
      
      //语句体
      
      }
      

      if语句(单支)的执行流程:

      • 首先判断布尔类型表达式看它的结果是false还是true
      • 如果是true就执行{}里面的方法体内容
      • 如果是false就不执行{}里面的方法体内容,程序往后加载

      在这里插入图片描述

    2. if else 多支情形

      格式:

      if (布尔类型表达式) {
      //语句体内容1;
      } else {
      //语句体内容2;
      }
      

      if else 的执行流程:

      • 首先判断布尔类型表达式看它的结果是true还是false
      • 如果是true,就执行语句体内容1
      • 如果是false,就执行语句体内容2
    3. if…… else if……else
      格式:

      if(布尔类型表达式1){ 
      //方法体内容1。。
      } else if (布尔类型表达式2) {
      //方法体内容2.。。。。
      }
      } else if (布尔类型表达式n) {
      //方法体内容n。。
      } else {
      //方法体内容n+1。。。。
      }
      

      在这里插入图片描述

    4. if……if……else……else

      在这里插入图片描述

    if 语句和三目运算符的互换

    int num01 = 10;
    int num02 = 20;
    //定义一个变量,保存num01和num02的最大值
    int c;
    if(num01 > num02){
    	c = num01;
    } else {
    	c = num02;
    }
    //上面的语句我们也可以使用三目运算符
    c = numm01 > num02 ? num01 : num02;
    
  • switch case 语句

    格式:

    switch(表达式) {
    	case 常量值:
    		//语句体内容
    		break;
    	case 常量值2:
    		//语句体内容2
    		break;
    	…………
    	default:
    		//语句体n
    		break;
    }
    

    执行流程:

    • 首先计算出表达式中的值
    • 其次,依次和case后面的常量值作比较,一旦有对应的值,就会执行相应的语句体内容。在执行的过程中,遇到break就会结束switch case语句。
    • 最后,如果所有的case都和表达式的值不匹配,就会执行default中的语句体内容,然后switch case语句结束。

    注意:在switch语句中,表达式的数据类型,可以是byte/short/int/char/enum(枚举)

    case 穿透性

    在switch语句,如果case后面的break省略掉,将会出现穿透现象。不会判断后面的case情形值,直接加载后面的case中的方法体内容,直到遇到break结束。

循环结构

     【三种基本循环】:for、while、do-while

循环结构组成部分:一般可以分为四个部分

  1. 初始化语句:在循环最初开始是,需要定义一个初始化的变量,而且只会定义一次。
  2. 条件判断(结束条件):如果条件成立满足,进入循环,如果条件不满足,则推出循环
  3. 循环体内容:重复要做的事情内容,可能包含很多条语句(事情是有规律的)
  4. 迭代语句(步进语句):每次循环结束之后需要执行步进语句(迭代语句),对初始化的变量做步进(迭代)。

for循环语句结构

   格式:
for(初始化语句;条件判断表达式;迭代语句){
	//循环体内容
}

执行流程;

  • 执行流程:1→2→3→4→2→3→4→2→3→4…………2 不满足条件为止
  • 1负责循环变量的初始化
  • 2负责判断是否满足循环
  • 3负责执行具体的语句
  • 4负责变量的迭代

while循环语句

格式:

//1.初始化语句;
while(2.判断条件) {
	//3.循环体语句
	//4.不仅语句;
}

执行流程:

  • 执行顺序:1→2→3→4→2→3→3→2→3→4→……2不满足为止
  • 1负责循环变量初始化
  • 2负责判断是否满足循环条件,不满足则跳出循环
  • 3负责执行具体语句,实现某个功能。
  • 4迭代循环变量

do-while循环语句

格式:

//1.初始化语句
do {
	//3.循环体内容
	//4.迭代语句
} while (2.判断条件);

执行流程:
执行顺序: 1->3—4–>2–>3–>4–2---->3-- ->4–>… 2不满足为止
1负责定义循环变量,并且进行初始化
2负责判断是否满足循环条件,不满足则跳出循环
3负责执行具体语句,实现某个功能
4迭代循环变量
备注:无条件执行一次循环体内容,即使判断条件是不满足也依然循环一次,这样的循环是有风险的,不建议使用。

循环语句的区别

for和while的区别

控制语句中所涉及到的循环变量,当for循环结束后,定义的循环变量不能在被访问到,而while循环结束后,依然可以访问到。如果不继续使用循环变量,建议使用for循环,因为for循环结束后,循环变量就会从内存中消失,能够提高内存的效率。
在已知循环次数下,建议使用for循环,当循环次数不确定时,使用while循环。

跳出语句

break、continue两个语句

break:

使用情形:终止switch语句或者循环语句
备注:离开了使用场景对于break来说没有意义

public static void main(String[] args) {
	//1使用break语句
	//跳出循环语句
	//10以内的偶数和
int sum = 0;
	for (int i=0;i<12;i ++) {
			//跳出情形
			if(i > 10) {
				break;
			}
			if(i % 2 == 0) {
				sum += i;
			}
	}
	String season = "春季";
	switch (season) {
		case"春季":
			System.out.println("万物复苏的时候");
			break;
		case"夏季":
			System . out . println( "烈日炎炎的时候”); 
			break;
		case"秋季":
			System . out . println("丰收的时候" );
			break;
		case"冬季":
			System . out . println("寒冷下雪的时候”);
			break;
		default:
			System . out . print1n("跳出三界外,不在五行中");
			break;
	}
}

continue
使用情形:结束本次循环,继续下一次循环

public static void main(String[] args) {
	//continue
	//求一下100以内的偶数和 
	int sum = 0;
	for(int i = 1; i <= 100; i++) {
		//使用场景 奇数跳过去,不参加累加和
		if(i % 2 != 0) {
			continue;
		}
		sum += i;
	}
}

扩展知识点:
1.死循环
概念:循环中的条件永远都是true,死循环是永不结束的循环。例如:while(true){}
死循环一般要和跳出语句结合。
2.循环嵌套
概念:是指一个循环的循环体是另一个循环。比如for循环中内置了一个for循环,就是循环嵌套。
循环的次数= 外部循环的次数*内部循环的次数

格式:
		    for(1.初始化语句;2.判断语句;4.迭代语句){
					//3.循环体内容1
					for(5.初始化语句;6.判断语句;8.迭代语句){
						//7.循环体内容2
					}
				}
 执行流程:
          执行流程: 125678678……6不满足为止(跳出循环)
                 4235678678....6不满足为止(跳出循环)
                 2不满足为止(结束整个循环),加载外层for循环后面的语句。
          外循环一次,内循环多次。
执行流程: 125678678……6不满足为止(跳出循环)
                4235678678....6不满足为止(跳出循环)
               2不满足为止(结束整个循环),加载外层for循环后面的语句。
外循环一次,内循环多次。

Scanner类和Random类的使用

API(Application Programming Interface) 应用程序编程接口,JavaAPI就是程序员的一本字典。是JDK中提供给我们使用的类的说明文档。只需要查阅API搜索自己需要的类。

Sanner类

它是一个可以解析基本数据类型和字符串的文本扫描器。主要作用就是把外部的数据录入到系统中。

//学习Scanner类
/*
	当你使用外部类的时候,大多数情况是需要在本类中做特殊声明的
	需要把外面的其他类的路径导入到本类中
	导入声明的语法格式:import 包名.类名
	
	java.util.Scanner
	import java.util.Scanner;
	该导入声明语句放到类的上面
*/
import java.util.Scanner;
public class ScannerDemo {
	
	public static void main (String[] args) {
		//使用Scanner类中的API方法
		Scanner  sc = new Scanner(System.in);
		
		int num = sc.nextInt();
		System.out.println(args[0]);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值