分支结构和循环结构即(if else ,while,for,do while)

流程控制结构

概念

流程控制: 代码执行顺序控制,代码执行的顺序决定了程序运行的结果

流程控制结构的分类

顺序结构

分支结构

循环结构

顺序结构

特点: 代码由上到下逐行执行

public class Poem {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		风急天高猿啸哀,渚清沙白鸟飞回。
//		无边落木萧萧下,不尽长江滚滚来。
//		万里悲秋常作客,百年多病独登台。
//		艰难苦恨繁霜鬓,潦倒新停浊酒杯。
//		由上自下依次执行
		System.out.println("-----------《登高》-----------------");
		System.out.println("风急天高猿啸哀,渚清沙白鸟飞回。");
		System.out.println("无边落木萧萧下,不尽长江滚滚来。");
		System.out.println("万里悲秋常作客,百年多病独登台。");
		System.out.println("艰难苦恨繁霜鬓,潦倒新停浊酒杯。");
	}

}

执行结果

------------《登高》-----------------
风急天高猿啸哀,渚清沙白鸟飞回。
无边落木萧萧下,不尽长江滚滚来。
万里悲秋常作客,百年多病独登台。
艰难苦恨繁霜鬓,潦倒新停浊酒杯。

分支结构

三类

1.单分支(if(){})
2.双分支(if(){} else {})
3.多分分支(if(){}else if(){}else if(){}else{})
4.switch case

应用的例子

单分支

if单分支结构

语法:
if(布尔表达式){
//当布尔表达式的值为true语句体才会执行
语句体;
}

例:

public class Demo4 {
	public static void main(String[] args) {
	//定义一个变量用于存储班级属性   false 错误班级 true 对的班级
		boolean class = false;
		if (class) {//
			System.out.println("班级不对你不能进去");
		}
		
		if (!class) {//你可以进去了
			System.out.println("班级对了你可以进去了");
		}
		
	}
}
if双分支结构

语法:

//这里当布尔表达式值为true时执行语句1,为false时执行语句2
if(布尔表达式){
语句1;
}else{
语句2;
}

例: 用if双分支结构改写,奇数和偶数的练习

import java.util.Scanner;

public class Demo5 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("请输入一个整数:");
		int input = scanner.nextInt();
		
		if (input%2 == 0) {
			System.out.println("偶数");
		}else {
			System.out.println("奇数");
		}
		
	}
}

执行结果

请输入一个整数:
25
奇数

if多分支结构

语法:

//这里哪里布尔表达式值为true,执行那个循环体否则执行语句n
语法:
if(布尔表达式1){
语句体1;
}else if(布尔表达式2){
语句体2;
}else if(布尔表达式3){
语句体3;
}
… —> 可以有 n个 else if结构
else{
语句n;
}

例: 模拟某网站站的注册流程

键盘输入用户的年龄,注册系统有以下的需求

0 – 17 —>提示: 注册失败 !
18 — 35 —> 提示: 注册成功
36 — 50 —> 提示: 注册成功
51 — 150 —> 提示: 注册成功

import java.util.Scanner;

public class Demo7 {
	public static void main(String[] args) {
//		案例:  模拟某P站的注册流程  
//
//		键盘输入用户的年龄,注册系统有以下的需求
//
//		0 -- 17   --->提示: 注册失败 !小屁孩 请发育好再来!
//		18 --- 35  ---> 提示: 注册成功 请尽情的享受,好好学习 天天向上!
//		36 --- 50  ---> 提示: 注册成功 请注意身体!小心猝死!
//		51 --- 150 ---> 提示: 注册成功 兄弟你身体可以啊!
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入您的年龄:");
		
		int age = scanner.nextInt();
		
		
		if (age>=0&&age<18) {
			System.out.println("注册失败!");
		}else if (age<36) {
			System.out.println("注册成功!1");
		}else if (age <51 ) {
			System.out.println("注册成功!2");
		}else {
			System.out.println("注册成功!3");
		}
	}
}

执行结果

请输入您的年龄:
25
注册成功!1

switch …case 分支结构

语法
switch(表达式){/*当表达式的值和所有case后的常量都不匹配,才会执行default语句,其执行的顺序和定义的位置没有关系,当定义在最后一行可以省略break,其他行不能省略break 否则会发生case穿透问题.
*/
case 常量1: 语句1;
case 常量2: 语句2;

case 常量n: 语句n;
default: 语句 n+1;
}

注意事项:
1. 表达式的值的类型,必须为以下几种类型之一
    byte 
    short 
    int 
    char 
    jdk 5开始 支持枚举
    jdk 7开始 支持String 
2. 结构中,case后的常量值不允许重复
3. 表达式的值
|--> 从上向下依次和所有的case后的常量值进行等于判断, 如果表达式的值 
等于case后的常量值,那么就会执行对应case后的语句,直到遇到break才会跳
出结构,否则就会发生case穿透问题.
case穿透问题解决

问题: 当在结构中,没有遇到break,会按照从上往下的顺序执行所有case后的语句.
解决方式: 使用break ,主动跳出结构

例:

键盘输入一个整数 (1 — 7)
1 — 星期1
2 — 星期2

7 — 星期日

import java.util.Scanner;

public class Demo8 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“请输入一个1 — 7 之间的整数:”);
int input = scanner.nextInt();

	switch (input) {
	
	case 1:
		System.out.println("星期1 ");break;
	case 2:
		System.out.println("星期2 ");break;
	case 3:
		System.out.println("星期3 ");break;
	case 4:
		System.out.println("星期4 ");break;
	case 5:
		System.out.println("星期5 ");break;
	case 6:
		System.out.println("星期6 ");break;
	case 7:
		System.out.println("星期日 ");break;
	default: System.out.println("请看输入说明!");break;
	}
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值