对于刚接触编程的小可爱们,肯定会碰到条件选择语句,书上写的有可能会过于专业化,会让我们感觉很难理解,在这里我就用最简洁明了的表达方式帮你理解并且学会使用这三种条件选择语句,其中if-else,switch-case是最常见的。
对于大佬们,读完你也许会新体会,新发现哟[可爱]。
同时我会在最下面说一说条件选择语句的叛逆的小徒弟(?:)
致敬四年前 《三种循环语句的详解和使用(for,while,do-while)》
原文链接:三种循环语句的详解和使用(for,while,do-while)
三种条件选择语句的详解和使用(if-else,switch-case,?:)
三种条件选择
if-else
这种是用的最多的,也是最好理解的一种方式。
结构(基本的写法还是要瞅一眼的)
if-else语法的结构如下:
if (条件表达式) {
// 如果条件表达式为真,则执行这里的代码
} else {
// 如果条件表达式为假,则执行这里的代码
}
括号内的是条件表达式(也就是判断条件)
“条件表达式”是一个布尔表达式,它的值可以是 true 或 false。如果条件表达式的值为 true,则执行 if 块中的代码;如果条件表达式的值为 false,则执行 else 块中的代码。
书上一般就会这样描述,我们可以这样理解:
if 是老大,else 是小弟
if 说的对(条件表达式成立)就听 if 的,否则才去听小弟 else 的
我:这理解了吧
读者:废话,继续
我:牛会哞 马会叫 牛马会收到~
别骄傲,还有一种进阶用法
进阶A:
if (条件表达式1) {
// 如果条件表达式1为真,则执行这里的代码
} else if (条件表达式2) {
// 如果条件表达式2为真,则执行这里的代码
} else {
// 如果所有条件表达式都为假,则执行这里的代码
}
还有
进阶B:
if (条件表达式1) {
if (条件表达式2) {
// 如果条件表达式1和条件表达式2都为真,则执行这里的代码
} else {
// 如果条件表达式1为真,但条件表达式2为假,则执行这里的代码
}
} else {
// 如果条件表达式1为假,则执行这里的代码
}
你会发现进阶A里多了个 else if ,他其实就是介于老大和小弟之前的老二,在 if 和 else 中间可以放很多个,所以可以是老二、老三、老四、老五。。。
用法就跟排名一样,先看老大符合不,然后在去看老二、老三、老四的,都不符合算小弟的
读者:秒懂,过
笔者:Okk
用法(最简单的用例让你看懂)
检查一个整数是正数、负数还是零
int number = 10;
if (number > 0) {
// "这个数是正数。"
} else if (number < 0) {
// "这个数是负数。"
} else {
// "这个数是零。"
}
笔者:好,好,不用说了,我们继续
进阶B也很好理解,我某个条件成立,我想在做具体的判断,那就继续写 if-else 白,就跟我上面那个样例判断是否为正数之后,我可以继续判断是不是偶数。
int number = 10;
if (number > 0) {
// "这个数是正数。"
if (number % 2 == 0) {
//"这个数是偶数。"
} else {
//"这个数是奇数。"
}
} else if (number < 0) {
// "这个数是负数。"
} else {
// "这个数是零。"
}
笔者:我可爱的亲爱的读者朋友们,是不是进阶的两个版本也都理解了
读者:当然,小Kiss
笔者:好嘞,您坐好,咱继续
switch-case
结构(变形版的if-else)
通往罗马的道路不止一条,实现代码的方式当然也不止一种,你看下面这个结构熟悉不熟悉
switch (表达式) {
case 值1:
// 如果表达式的值等于值1,则执行这里的代码
break;
case 值2:
// 如果表达式的值等于值2,则执行这里的代码
break;
// 可以有多个 case 分支
default:
// 如果表达式的值不等于任何一个 case 分支的值,则执行这里的代码
}
这里的表达式指的可不是上面if-else的条件表达式了
这里的“表达式”可以是任何能够产生整数值的表达式,例如变量、常量或方法调用。每个 case 分支后面跟着一个值,当表达式的值与这个值相等时,就会执行该 case 分支中的代码。break 语句用于在执行完当前 case 分支的代码后跳出 switch 语句,防止程序继续执行下一个 case 分支。如果没有 break 语句,程序会继续执行下一个 case 分支,直到遇到 break 语句或 switch 语句结束。
读者:废话,三个字跟五个字能一样吗?
读者:写个代码别跟阅读理解似的绕,直接说[霸气]
简单点说也是最常用的一种就是 switch case 括号里的是一个变量,if-else里的是一个判断条件(为真还是为假)
笔者:上代码,请见用法
用法(就举个星期几的栗子吧)
int dayOfWeek = 4; // 假设今天是星期四 2024年10月24日
switch (dayOfWeek) {
case 1:
System.out.println("今天是星期一");
break;
case 2:
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4:
System.out.println("今天是星期四");
break;
case 5:
System.out.println("今天是星期五");
break;
case 6:
System.out.println("今天是星期六");
break;
case 7:
System.out.println("今天是星期日");
break;
default:
System.out.println("无效的星期值");
}
输出是这样的:
今天是星期四
在这个示例中,switch 语句根据 dayOfWeek 变量的值来输出相应的星期几。如果 dayOfWeek 的值是 4,则会执行 case 4 分支中的代码,输出“今天是星期四”。如果 dayOfWeek 的值不在 1 到 7 之间,则会执行 default 分支中的代码,输出“无效的星期值”。
读者:你上面说没有 break 语句,程序会继续执行下一个 case 分支,这是啥意思
笔者:很好,就喜欢你这好奇的劲头
int dayOfWeek = 4; // 假设今天是星期四 2024年10月24日
switch (dayOfWeek) {
case 1:
System.out.println("今天是星期一");
break;
case 2:
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4:
System.out.println("今天是星期四");
case 5:
System.out.println("今天是星期五");
case 6:
System.out.println("今天是星期六");
break;
case 7:
System.out.println("今天是星期日");
break;
default:
System.out.println("无效的星期值");
}
输出是这样的:
今天是星期四
今天是星期五
今天是星期六
这就是去掉 break 的效果,在 switch 语句中,当 dayOfWeek 的值与 case 标签匹配时,程序将执行相应的 case 块中的代码。
在这个例子中,case 4: 没有 break 语句,这意味着执行完 case 4: 中的代码后,程序将继续执行下一个 case 块中的代码,即 case 5:、case 6: ,直到遇到 break 语句或 switch 语句结束。
笔者:就相当于刹不住车的感觉,直到碰见 break 这个刹车为止。
读者:我还是喜欢你这样说话,知道了,break 是刹车。
看到这里,条件选择语句你就掌握到精髓了,该学会的你也学的差不多了,下面两个是来凑热闹,咱接着说。
?:
读者:这是个什么鬼,就两个符号
笔者:听我说,谢谢你~[不对]
笔者:听我说,你继续看
除了if-else和switch-case语句,还有其他一些条件选择的语法,例如三元运算符(?:)
三元运算符(?:)
三元运算符是一种简洁的条件表达式,它可以替代简单的if-else语句。其语法如下:
语法(主打的一个简洁)
条件表达式? 表达式1 : 表达式2
这个语法的核心就是两个符号一个 ? ,一个 :
咱给他转成好理解的方式
条件成立不?成立往后走到这结束:不成立跳到这结束
各位这样再看是不是就好理解了,就是说条件表达式成立就执行表达式1,不成立执行表达式2
读者:这不就是if-else吗?
笔者:没错就是这么回事
读者:那为啥还要整个这样的
笔者:这样可以使代码更加简洁和易读
用法(这个很Nice)
很好理解的一个demo,就是求两个数的最大值,这样一行就搞定了
int a = 10;
int b = 20;
int max = a > b? a : b; // 20
max的值将被设置为a和b中的较大值
那么咱再写一个上面写的判断奇偶数的用法:
int number = 10;
String result = (number % 2 == 0)? "偶数" : "奇数"; // 偶数
读者:果然很简洁
笔者:这些条件选择的语法可以根据不同的场景和需求来使用,以提高代码的简洁性和可读性。
非常感谢读到这里的小可爱们(不妨点个赞再走吧)
别忘了关注哟[感谢][激动]
祝大家节日快乐!!!
版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/
个人博客链接:https://keafmd.top/
看完如果对你有帮助,感谢点击下面的点赞支持!
[哈哈][抱拳]
加油!
共同努力!
Keafmd
感谢支持牛哄哄的柯南,期待你的三连+关注~~
keep accumulate for my dream【共勉】
↓ ↓ ↓ 合作 交流 ↓ ↓ ↓