选择结构

选择结构

			流程控制  :  就是用来控制程序中各语句的执行顺序

1.基本if选择结构

if(条件){

		代码块(满足if条件的代码块)

}

1.1) . if else 选择分枝结构

// if-else 分支选择结构 (互斥)
// 条件成立后执行的代码 如果只有一行 可以不加{} 但是规范!!!!必须加上{}!!!
if(zhangScore > 90) {
System.out.println(“奖励iPhone xs”);
System.out.println(“奖励兰博基尼!”);
}else { // else 否则
System.out.println(“奖励你一个飞鞋!”);
}

/if(zhangScore <= 90) {
System.out.println(“奖励你一个飞鞋!”);
}
/

System.out.print(“程序结束!”);

	/**
	
	- 需求:键盘录入的登录
	
	- @author Charles
	  *
	   */
	  public class Demo1 {
	
	  	public static void main(String[] args) {
	  	// 1.声明键盘录入
	  	Scanner input = new Scanner(System.in);
	  	// 2.使用
	  	System.out.print("请输入您的用户名:");
	  	String username = input.next();
	  	System.out.print("请输入您的密码:");
	  	String password = input.next();
	// 假定用户名:admin  密码:123456
	// if("admin" == username)  Java中判断字符串相等不能使用==  字符串是个引用数据类型
	/*if("admin".equals(username) && "123456".equals(password)) { // equals()用来判断字符串内容是否相等
		
	}*/
	/*if(username.equals("admin") && password.equals("123456")) {
		System.out.println("登录成功!欢迎您!");
	}else {
		System.out.println("用户名或密码错误!");
	}*/
	
	// 加上! 可以获取指定的结果的相反条件  
	if(!(username.equals("admin") && password.equals("123456"))) {
		System.out.println("用户名或密码错误!");
	}else {
		System.out.println("登录成功!欢迎您!");
			}
		}
	
	}

1.2)多重if

if(条件){

		代码块1

}else  if{

		代码块2

 }

[else if对前一个的否定]()

	1)顺序自上而下

	2)只要上方有一个条件成立,下面的条件不在判断

			所以越容易的表达式就越应放在上方 

	3)多重if可以有多个else  if   但else  if  不可单独存在

	4)多重  if  可以结合  else  使用   也可省略

1.3) . 嵌套if选择结构

**需求:**乘坐地铁,先安检,如果你携带的刀具超过9cm,那么不允许进站!如果没有超过,进站需要刷票,如果有票进站,没票需要买票。

public class Demo5 {
	public static void main(String[] args) {

	// 1.声明变量存储刀具的长度
	int lengthOfKnife = 10;
	// 2.声明变量存储是否有票
	int hasTicket = 1; // 0 表示无票  1表示有票
	// 嵌套if一般不会超过3层  如果超过三层  基本可以考虑换方案
	if(lengthOfKnife < 9) {
		System.out.println("安检通过!");
		if(hasTicket == 1) {
			System.out.println("可以乘车!");
		}else {
			System.out.println("余额不足!嘟嘟嘟嘟...");
		}
	}else {
		System.out.println("带走!怎么哪都有你!");
	}
	}
}

2.switch选择结构

[条件判断必须为等值运算]()

	switch(表达式){

			case 1 :

						语句

					break;

			case 2 :

						语句

					break;

			default :

					break;

}

switch 接受 int 类型 和String类型的的表达式

	[如果字符串中大写字母等于小写字母(不区分大小写)]()

		用[equalsIgnoreCase]()

例 : String strl = “A”;

strl equals Ignore Case (“a”);

switch选择结构注意事项:
  1. switch支持的数据类型有:byte short int char String(JDK1.7之后才支持String) Enum (byte和short因为可以自动类型转换为int)

    char类型和ASCII码表有关系,所以也支持。

    // char类型有些特殊 它可以将字符转换为对应的ASCII码值
    // a:97 b:98…
    // A:65 …
    char alpha1 = ‘a’;
    alpha1 --; // 如果采用自增自减 那么结果还是char类型
    System.out.println(alpha1);
    // System.out.println(alpha1+10); // 如果是进行计算 那么结果是ASCII码值进行计 算得到数值

    1. 1. Switch只能做等值判断
      
      2. 每一个case后必须写上break(规范)
      
         如果你不写,可能发生`case的穿透性`:会一直往下执行,直到找到下一个break截止。
      
         case穿透性有时候有些特殊用处:
      

    public class Demo3 {
    public static void main(String[] args) {

     // 需求:如果是星期一到星期五   好好学习
     // 如果是周末  则好好休息
     
     // 存储当前是星期几
     int dayOfWeek = 3;
     /*if(dayOfWeek >= 1 && dayOfWeek <= 5) {
     	
     }*/
     switch(dayOfWeek) {
     	case 1:
     	case 2:
     	case 3:
     	case 4:
     	case 5:
     		System.out.println("好好学习!");
     		break;
     	case 6:
     	case 7:
     		System.out.println("好好休息!");
     		break;
     	default:
     		System.out.println("没有该星期!");
     		break;
     }
    

    }
    }

  2. 和多重if的区别:

    • switch语法更加清晰,简洁
    • switch只能支持等值判断,多重if可以支持范围判断。
    • switch性能要比if快一些。

3.随机生成

	Math.random();    为double  类型        double  变量名 = Math.random();  

		随机生成[0.0-1.0)的小数(包含0.0不包含1.0)

			想换成  int 类型的整数可以强转   *10

例 : int run = (int)Math.random();*10

想要生成max到min的数

Math.random*(max-min)+min

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值