第四讲 控制语句

本文详细介绍了Java中的三目运算符、if-else、switch语句以及for、while循环的使用方法和特点。讲解了break和continue在循环中的作用,并通过实例展示了它们的运行效果。此外,还探讨了case穿透现象及其避免方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第四讲 控制语句

1 三目运算符

表达式0 ? 表达式1 : 表达式2
表达式0:要是一个布尔表达式,要得到一个布尔值。
int a = 100;
int b = 200;
int i = (a > b) ? a : b;


class BoolExp 
{
	public static void main(String[] args) 
	{
		char a = 97;
		char b = 98;
		// int a = 100;
		// int b = 200;
		//int c = (a > b) ? a : b;
		//(a > b) ? a : b; // 这样可以吗?不是语句。
		// 这个表达式运算完后得到的结果要么是 a; 要么是 b;
		// a;b;它们都不是语句
		System.out.println((a == b) ? a : b); // 这样可以吗?为什么?
	}
}
println((a == b) ? a : b);这样是可以的
    那么我们可以想象到,println()中有个参数,为char类型的。
    println(char arg);
	char arg = (a == b) ? a : b;
	println(arg);
到了这里我们可以想到,println()这个方法很强大,它可以对应各种数据类型的东西。
我们一样可以推测,println()一定有多个。
    println(int arg)
    println(byte arg)
    println(String arg)
    println(char arg)
    println(float arg)
    .......

2 控制语句

控制语句:
    if(bool表达式) {
        java语句;
        java语句;
        ...
    } else {
        java语句;
        java语句;
        ...
    }


    if(bool表达式) {
        java语句;
        java语句;
        ...
    } else if(bool表达式){
        java语句;
        java语句;
        ...
    }
这个与C所学的if语句没有什么差别。

switch语句:
switch("值") {
case "值1":
        java语句;
        java语句;
        break;
case "值2":
        java语句;
        java语句;
        break; 
case "值3":
        java语句;
        java语句;
        break;
...
    default:
        java语句;
}
说明:
    switch:开关
	switch("值"):这个"值"只能是int型和String型。jdk1.8以前,只能是int型,以后才增加了String。
    大家想,我们的电闸,要严丝合缝。在switch语句中,
    要求"值"case后面跟的这个"值i"要匹配,要完全相等。因为这里使用了"值" == "值i",只有这个表达式为true,才能执行case后的java语句。这和开关一样一样的。
class SwitchTest 
{
	public static void main(String[] args) 
	{
		//int i = 100;
		//String i = "100";
/*
		byte i = 1;
		switch(i) {
		case 1:
			System.out.println("--->" + i);
			break;
		case 2:
			System.out.println("--->" + i + 1);
			break;
		case 3:
			System.out.println("--->" + i + 2);
			break;
		}
*/
		char i = 100;
		switch(i) {
			
		}
	}
}
switch语句中,case是不必要的;default也是不必要的;break也是不必要的。
如果没有break语句,会怎样?会出现case击穿,或者说叫做case穿透。
class SwitchTest02 
{
	public static void main(String[] args) 
	{
		int i = 1;
		switch(i) {
		case 1:
			System.out.println("--->" + i);
		case 2:
			System.out.println("--->" + i + 1);
		case 3:
			System.out.println("--->" + i + 2);
		}
	}
}
// 上述代码执行的结果是怎样的?
// 全部输出
// 这种现象叫做case穿透
输出的结果:
E:\java基础\day02-1>java SwitchTest02
--->1
--->11
--->12

3 循环

for(表达式1; 表达式2; 表达式3) {
	java语句;
}
for(表达式1; 表达式2; 表达式3) {
    for(表达式i; 表达式j; 表达式k){
        java语句;
    }
	java语句;
}

表达式1是什么?--- 初始化表达式
表达式2是什么?--- 判断条件表达式
表达式3是什么?--- 更新表达式
    
for循环执行的原理:
    1. 谁最先执行?初始化表达式最先执行,它执行几次?它只执行一次。
    2. 其次谁执行?判断条件表达式执行,该表达式执行的结果是一个bool值,即true or false
    如果是true,执行循环体,循环体执行完毕之后进入下一步
    3. 执行更新表达式。更新表达式执行完毕之后,进入到第2步,执行判断条件表达式,直到判断条件表达式的结果为false,循环执行完毕。
    
class TestFor 
{
	public static void main(String[] args) 
	{
		int i = 0;
		for (; ;)
		{
			if( i >= 10) {
				break;
			}
			
			System.out.println("--->" + i);
			i++;
		}

	}
}
各种变形要明白。
    
while(表达式) {循环体}
do{循环体} while(表达式)
它跟for有啥区别吗?本质上没有区别
while(true) {
    死循环;
}

4 break 与 continue

"break"语句能用在哪里?
    循环中
    switchif语句中?不行!!!!!!!
    break; 一个单词构成了一个java语句。意为打破。
        用在switch语句中的作用是?防止case穿透。
        该语句用在循环中,作用是终止离它最近的循环,就近原则。
"continue"用在循环中终止当前那一次循环,直接进入到下一次循环中。
        
class TestFor 
{
	public static void main(String[] args) 
	{
		for(int i = 0; i < 10; i++) {
			if (i == 5)//当条件满足后进入到if语句中
			{
				break; // 执行break以后,循环体中后续的代码不会被执行。
                // 也不会去执行更新表达式,直接跳出循环。循环结束
			}
			System.out.println("i-->" + i);
		}	
	}
}
输出: 0 1 2 3 4 (有换行)

class TestFor 
{
	public static void main(String[] args) 
	{
		for(int i = 0; i < 10; i++) {
			if (i == 5)//当条件满足后进入到if语句中
			{
				continue; // 执行continue以后,循环体中后续的代码不会被执行。
                // 直接去执行更新表达式,进入下一次循环。
			}
			System.out.println("i-->" + i);
		}	
	}
}
输出: 0 1 2 3 4 6 7 8 9 (有换行)
    
补充:
    java代码的执行方式:与C语言一样,它们都是顺序执行的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值