程序控制结构

一:分支控制结构

1:单分支 if

基本语法:

if(条件表达式){

代码块(可以有多条语句)

}

对于上面的单分支来说,我们可以形象的理解为 一个小孩子向他的妈妈要糖,他的妈妈就要看看他儿子值不值得,得到糖,如果条件表达式的结果为真,则表示小孩有资格吃糖,便把糖给小孩;若条件表达式的结果为假,则表示小孩没有资格吃,则小孩就不会在去询问他的妈妈。

案例1:编写一个程序 If01.java,可以输入一个人的年龄,如果该同志的年龄大于18岁,则输出“你的年龄大于18,要的自己的行为负责,送入监狱。

// 引入Scanner所在的包
import java.util.Scanner;
public class If01{
	//编写一个main方法
	public static void main(String[] args){
		// 编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁, 
		// 则输出 "你年龄大于 18,要对自己的行为负责,送入监狱
		// 思路分析:
		// 1:接收输入的年龄,应该定义一个Scanner对象
		// 2:接收到之后,把年龄保存到一个变量 int age
		// 3:使用  if 判断,输出对应信息
		//定义一个Scanner对象
		Scanner myScanner = new Scanner(System.in);
		//提示信息 
		System.out.println("请输入年龄”);
		//保存年龄
		int age = myScanner.nextInt();
		if(age > 18) { 
			System.out.println("你年龄大于 18,要对自己的行为负责,送入监狱"); 
		}
			System.out.println("程序继续...");

	}
}

// 引入Scanner所在的包
import java.util.Scanner;
public class If01{
    //编写一个main方法
    public static void main(String[] args){
        // 编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁, 
        // 则输出 "你年龄大于 18,要对自己的行为负责,送入监狱
        // 思路分析:
        // 1:接收输入的年龄,应该定义一个Scanner对象
        // 2:接收到之后,把年龄保存到一个变量 int age
        // 3:使用  if 判断,输出对应信息
        //定义一个Scanner对象
        Scanner myScanner = new Scanner(System.in);
        //提示信息 
        System.out.println("请输入年龄”);
        //保存年龄
        int age = myScanner.nextInt();
        if(age > 18) {   妈妈再看他的小孩有没有资格吃糖
            System.out.println("你年龄大于 18,要对自己的行为负责,送入监狱"); 

                        有资格,条件表达式为真 ,则会执行这段代码,给小孩吃糖,糖就是这一句代码
        }
            System.out.println("程序继续...");

无资格,条件表达式结果为假,则不给孩子吃糖,小孩不会再问。

    }
}

2:双分支 if-else

if(条件表达式){

执行代码块1;

}else {

执行代码块2;

}

对于上面的双分支来说,我们可以形象的理解为 一个小孩子向他的妈妈要糖,他的妈妈就要看看他儿子值不值得,得到糖,如果条件表达式的结果为真,则表示小孩有资格吃糖,便把糖给小孩;若条件表达式的结果为假,则表示小孩没有资格吃,则小孩就去干别事情。

案例2:可以输入一个人的年龄,如果该同志的年龄大于18岁,则输出“你的年龄大于8岁,要对自己的行为负责,送入监狱,否则,输出你的年龄不大这次放过你了。

// 引入Scanner所在的包
import java.util.Scanner;
public class If01{
	//编写一个main方法
	public static void main(String[] args){
		// 编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁, 
		// 则输出 "你年龄大于 18,要对自己的行为负责,送入监狱
		// 思路分析:
		// 1:接收输入的年龄,应该定义一个Scanner对象
		// 2:接收到之后,把年龄保存到一个变量 int age
		// 3:使用  if 判断,输出对应信息
		//定义一个Scanner对象
		Scanner myScanner = new Scanner(System.in);
		//提示信息 
		System.out.println("请输入年龄”);
		//保存年龄
		int age = myScanner.nextInt();
		if(age > 18) { 
			System.out.println("你年龄大于 18,要对自己的行为负责,送入监狱"); 
		}else{
			System.out.println("你的年龄不大这次放过你了");
		}
			System.out.println("程序继续...");
		}

	}
}

// 引入Scanner所在的包
import java.util.Scanner;
public class If01{
    //编写一个main方法
    public static void main(String[] args){
        // 编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁, 
        // 则输出 "你年龄大于 18,要对自己的行为负责,送入监狱
        // 思路分析:
        // 1:接收输入的年龄,应该定义一个Scanner对象
        // 2:接收到之后,把年龄保存到一个变量 int age
        // 3:使用  if 判断,输出对应信息
        //定义一个Scanner对象
        Scanner myScanner = new Scanner(System.in);
        //提示信息 
        System.out.println("请输入年龄”);
        //保存年龄
        int age = myScanner.nextInt();
        if(age > 18) {  妈妈再看他的小孩有没有资格吃糖
            System.out.println("你年龄大于 18,要对自己的行为负责,送入监狱"); 

有资格,条件表达式为真 ,则会执行这段代码,给小孩吃糖,糖就是这一句代码
        }else{
            System.out.println("你的年龄不大这次放过你了");

无资格,条件表达式结果为假,则不给孩子吃糖,让小孩去干别的事情。
        }
            System.out.println("程序继续...");
        }

    }
}

3:多分支 if-else if-else if-...-else

if(条件表达式1){

执行代码块1;

}else if(条件表达式2){

执行代码块2;

}else if(条件表达式3){

执行代码块3;

}

对于上面的多分支来说,我们可以形象的理解为 一个小孩子向他的妈妈要糖,他的妈妈就要看看他儿子值不值得,得到糖,如果条件表达式的结果为真,则表示小孩有资格吃糖,便把糖给小孩;若条件表达式的结果为假,则又会给小孩机会,再次检查,直到小孩的机会用完,让小孩去干另一件事。

案例3:

public class If002{
	//编写一个main方法
	public static void main(String[] args){
	//思路:
	//1:创建Scanner的对象,接收用户输入
	//2:将用户输入保存在 int grade
	Scanner myScanner = new Scanner(System.in);
	//接收用户输入;
	System.out.println("请输入信用分:");
	//提示用户输入;
	int grade = myScanner.nextInt();
	if(grade >=1 && grade <=100){

		if(grade == 100 ){
			System.out.println("你的信仰良好");
		}else if(grade >= 80 && grade <= 99){
			System.out.println("信用优秀");
		}else if(grade >= 60 && grade <= 80){
			System.out.println("信用一般");
		}else{
			System.out.println("信用不及格");
		}

	}else{
		System.out.println("输入错误,请重新输入:");
	}
	}
}

public class If002{
    //编写一个main方法
    public static void main(String[] args){
    //思路:
    //1:创建Scanner的对象,接收用户输入
    //2:将用户输入保存在 int grade
    Scanner myScanner = new Scanner(System.in);
    //接收用户输入;
    System.out.println("请输入信用分:");
    //提示用户输入;
    int grade = myScanner.nextInt();
    if(grade >=1 && grade <=100){

如果想要做下面的工作,也就是想要吃糖,则必须要检查是否可以

      if(grade == 100 ){
            System.out.println("你的信仰良好");
        }else if(grade >= 80 && grade <= 99){
            System.out.println("信用优秀");
        }else if(grade >= 60 && grade <= 80){
            System.out.println("信用一般");
        }else{
            System.out.println("信用不及格");
        }

    }else{
        System.out.println("输入错误,请重新输入:");
    }
    }
}

二:循环控制结构

1:基本语法

switch(表达式){

case 常量1:

语句块1;

break;

case 常量2:

语句块2;

break;

case 常量n;

语句块n;

break;

default;

default语句块;

break;

}

2:流程图

理解: 我们可以把switch理解为一个大箱子,里面有好多小箱子,并且每个小箱子都有编号,大箱子外面可以输入信息,来对里面的小箱子进行匹配,若匹配成功,则会使用小箱子的东西,并且使用完之后,可以选择退出大箱子,使用break,若不使用break,则不会退出,会继续访问后面的小箱子。:若无法匹配到里面的小箱子,可以输入default语句,放入这个小箱子,是默认的,可以放,也可以不放。

3:案例 Switch01.java

请编写一个程序,该程序可以接收一个字符,比如 :a,b,c,d,e,f,g
a 表示星期一, b 表示星期二
public class Switch01{
	//编写main方法
	public static void main(String[] args){
		//思路:
		//1:创建Scanner对象,接收用户输入;
		//2:将接收的输入保存在 char c1里面。
		//3:使用switch进行匹配
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入信息:");
		char c1 = myScanner.next().charAt(0);
		switch(c1){
			
			case 'a':
			System.out.println('A');
			case 'b':
			System.out.println('B');
			case 'c':
			System.out.println('C');
			case 'd':
			System.out.println('D');
			case 'e':
			System.out.println('E');
			default :
			System.out.println("您的输入有误,请重新输入:");

		}
	}
}

4:注意事项和细节

        1:表达式的数据类型,必须和case子句里面的常量值的数据类型 一致,若两种数据类型可以自动进行相互转换也可以,比如输入的是字符,常量是int。

可以理解为不是一家人,不进一家门,如果类型不同,或者不能相互转换,则不能进行匹配,会出现错误。

        2:表达式的返回值的数据类型必须是:(byte,short,int,char,enum[枚举],String)

        3:case的值必须是常量,不能是变量  因为里面的小箱子的编号不能随意变动,每个箱子都有独立的编号,就和一个人有一个身份证一样。

        4:default子句这个小箱子可以放也可以不放进去,当匹配不到别的小箱子的时候,可以执行default。是个备胎。

        5:若case子句执行完之后,没有遇到break,则会继续执行下一个case子句,直到遇到break才会终止switch。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值