java学习--第五天

9 篇文章 0 订阅
9 篇文章 0 订阅

Java基础-控制结构

顺序控制

顺序控制其实就是我们正常程序执行的顺序,从上到下逐行执行,中间没有任何判断和跳转

分支控制if-else

分支控制有三种

  1. 单分支
  2. 双分支
  3. 多分支

单分支

基本语法

if(条件表达式){

执行代码块;

}

条件表达式true时,就会执行{ }的代码。为false则不执行执行代码块的语句。继续执行{ }后面的代码

import java.util.Scanner;
public class if01{
	public static void main(String[] args){
		
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入你的年龄:");
		int age = myScanner.nextInt();
		if(age >= 18){
			System.out.println("你的年龄大于18,要对自己的行为负责,送入监狱");
		}
		
		
		
	}
}
流程图

双分支

基本语法

if(条件表达式){

执行代码块1;

}else{

执行代码块2;

}

条件表达式true时,就会执行代码块1的代码。为false则执行代码块2的语句。然后继续执行{ }后面的代码

import java.util.Scanner;
public class if02{
	public static void main(String[] args){
		
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入你的年龄:");
		int age = myScanner.nextInt();
		if(age >= 18){
			System.out.println("你的年龄大于18,要对自己的行为负责,送入监狱");
		} else{
			System.out.println("你的年龄不大,这次放过你");
		}
		
		
		
	}
}
流程图

多分支

基本语法

if(条件表达式){

执行代码块1;

}else if{

执行代码块2;

}

......

else {

执行代码块n;

}

特别说明:

  1. 多分支可以没else,如果所有条件表达式都不成立,则一个执行入口都没有
  2. 如果有else,所有条件表达式都不成立,则执行入口是else
import java.util.Scanner;

public class hello {
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("保国同志,请输入你的芝麻信用分(0-100)");
		int grade = myScanner.nextInt();
		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("保国同志,你的信用不及格");
		}
	}
}

流程图

嵌套分支

注意:不要超过三层嵌套(可读性不好)

import java.util.Scanner;

public class hello {
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入本月的月份:");
		int month = myScanner.nextInt();
		if(month >= 4 && month <= 10){
			System.out.println("请输入您的年龄");
			int age = myScanner.nextInt();
			if(age >= 18 && age <= 60){
				System.out.println("你需要支付60元票价");
			}else if(age < 18){
				System.out.println("你需要支付30元票价");
			}else if(age > 60){
				System.out.println("你需要支付20元票价");
			}

		}else{
			System.out.println("请输入您的年龄");
			int age = myScanner.nextInt();
			if(age >= 18 && age <= 60){
				System.out.println("你需要支付40元票价");
			}else{
				System.out.println("你需要支付20元票价");
			}
		}
	}
}

switch分支

基本语法

switch(表达式){

case 常量1:

语句块1;

break;

case 常量2:

语句块2;

break;

......

default:

default语句块;

break;//有没有break都会退出了

}

Detail

  1. switch关键字表示switch分支
  2. 表达式对应一个值(但不一定需要是常量),与以下的case的常量有关,如果匹配不上case的所有常量,则执行default
  3. break表示退出switch
  4. switch中根据case顺序判断

流程图(需要注意)

break处容易出错,还有default的位置都需要注意

示例代码

import java.util.Scanner;

public class hello {
	public static void main(String[] args){
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入一个字符(a-g):");
		char c1 = myScanner.next().charAt(0);

		switch (c1){
			case 'a':
				System.out.println("今天是周一");
				break;
			case 'b':
				System.out.println("今天是周二");
				break;
			case 'c':
				System.out.println("今天是周三");
				break;
			default:
				System.out.println("只有abc哦!");
				break;
		}System.out.println("退出了switch,继续执行程序");

	}
}

Detail:

  1. 表达式数据类型,应和case后的常量类型一致或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int
  2. switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)
  3. case子句中的值必须是常量,而不能是变量
  4. default子句是可选的,当没有匹配的case时,执行default
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块:如果没有写break,程序会顺序执行到switch结尾

switch和if的比较

  1. 如果判断的具体数值不多,而且符合byte、 short、int、 char、 enum[枚举]、String这6种类型。虽然两个语句都可以使用,建议使用swtich语句。
  2. 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更大
  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值