Java 判断[if,switch]、循环[while,do...while]和结束循环关键字

流程控制

  • 让程序在执行的过程中,更有条理、更有逻辑性
  • 流程控制的使用会让代码变得更加复杂

流程控制的分类

  • 判断
  • 循环

判断

  • if 语句
  • switch 语句
if语句
  • if 假如、如果
if (boolean表达式) {
	// 条件成立,执行的代码
}

if 语句不需要以 分号 结尾
boolean 表达式常见有

  1. true/false
  2. 关系运算表达式
  3. 逻辑运算表达式
  • if-else 如果-否则
if (boolean表达式){
	// 条件成立执行的代码
}else{
	// 条件不成立执行的代码
}
  • if多分支条件判断
if(boolean表达式){
	// 条件成立执行的代码
	
}else if(boolean表达式) {
	// 条件成立执行的代码
}
...
else{
	// 处理其他情况,对程序做兜底处理
}

switch 语句
  • 比较善于处理 值为 枚举的 判断
  • switch 能处理的数据类型有
    • byte (Byte)
    • short (Short)
    • int (Integer)
    • char (Character)
    • enum (枚举)
    • String

注意:
1.switch 支持的类型
2.在使用 switch 的时候,case 默认会有穿透效果,
使用 break 关键字,来解决穿透效果

switch(变量){
	
	case 值: 
		code ...
	case 值:
		code ...
	...
	default:
		code ... 	
}
补充
  1. 在 JDK14 中,switch 可以是语句,也可以是表达式
  2. switch 作为表达式,可以返回数据
  • 案例一
int a = 4;
String res = switch(a){
				case 1,4 ->{ 
					System.out.println("这是石头");
					yield "石头";
				}
				case 2 -> {//{}内必须是语句
					yield "剪刀";
				}
				/*
				case 3 -> yield "布";//错误代码!
				如果 case 中,只有一行代码,且省略了 大括号,必须省略 yield
				*/
				case 3 -> "布";
				
				default -> "无效";
			};//作为表达式,返回一个值时,结束处必须分号结束
System.out.println(res);
  • 案例二
int a = 2;
switch(a){
	case 1,4 -> {
		System.out.println("石头");
	}
	// 如果只有一句,可以省略{}
	case 2 -> System.out.println("剪刀");
	case 3 ->{
		System.out.println("布");
	}
	default -> {
		System.out.println("无效");
	}
}

循环

  • 计算机比较擅长重复的劳作,在编写的代码的时候,可以将重读的动作进行处理,形成所谓的循环
  • 循环: 重复的做某些事情

编写循环的代码, 必须掌握循环的三要素

  1. 循环的起始条件 (循环从哪里开始)
  2. 循环的运行条件 (循环代码)
  3. 控制循环(想方设法让循环能够正常的结束、退出循环)
循环的种类
  • while 循环
  • do … while 循环
  • for 循环
while 循环
循环的起始条件

while(boolean条件) {
	
	循环体 
	//对循环的控制
}

do … while 循环
do{
	循环体 
	//对循环的控制
}while(boolean条件);
while 循环与 do…while 循环的区别:
  • while 循环先判断条件是否成立,若不成立则一次也不会执行,直接跳过循环
  • do…while 循环 不会先判断条件,而是先执行循环体一次,再进行判断条件是否成立。
  • 循环次数,while 循环至少执行0次,do…while 循环至少执行 1次

while 小考点:

  • 案例一
while(true){
	System.out.println("hello world");
}
// 报错,虚拟机会检测出来,while()括号内是一个值,并且没检测到控制,认为下面的是垃圾,不允许
System.out.println("over");
  • 案例二
while(false){
	// 报错,虚拟机会检测出来,while()括号内是一个值,并且没检测到控制,认为下面的是垃圾,不允许
	System.out.println("hello world");
}
System.out.println("over");
  • 案例三
// 没错,欺骗虚拟机,认为while()括号内是一个变量,可能会发生改变
boolean f = false;
while(f){
	System.out.println("hello world");
}
System.out.println("over");
  • 案例四
//没错,虚拟机不会检测if
if(false){
	System.out.println("hello world");
}
System.out.println("hello world");
  • 案例五
//没报错。虽不会检测if后的boolean值,但while循环中看到了break;语法上不会报错。
while(true){
	if(false){
		break;
	}
}
System.out.println("hello world");

循环结束:continue; break;

  1. continue;

跳过本次循环(后面的代码不会执行)进入下一次循环

  1. break;

跳出循环(结束最近的循环结构)
也可指定跳出哪个循环,加标志。

  • 默认结束最近的循环结构。
  • 后跟标识结束指定循环,如
over:for (int i = 0; i < 4; i++) {
           while (true){
               if(i == 2){
                   System.out.println(i);
                   break over;
                   // break 后跟标识,结束指定循环
               }
               i++;
           }
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值