theme: healer-readable
highlight: a11y-dark
哈喽,各位小伙伴们,你们好呀,我是喵手。
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。
小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!
前言
Java作为一门广泛应用的开发语言,其支持的条件语句丰富多样。其中最基本的就是if语句和switch语句,这两种语句都可以用于根据不同的条件执行不同的代码块。在日常开发中,对于一些需要基于条件来进行判断和控制的业务逻辑,if和switch语句都是必不可少的工具。
摘要
本文主要围绕JavaSE中的条件语句:if语句、switch语句进行介绍和解析。在介绍的同时,我们还会结合实际的应用场景,解析if和switch语句的优缺点,以及在类中定义if和switch语句的方法和标准等。
正文
简介
if语句
if语句是一种基于条件判断的控制语句,用于根据不同的条件执行不同的代码块。if语句通常的语法形式如下:
代码语言:java复制if (condition) {
// 如果条件成立,执行此代码块
} else {
// 如果条件不成立,执行此代码块
}
其中,condition是需要进行判断的条件表达式,如果表达式的值为true,则执行if后面的代码块,否则执行else后面的代码块。
switch语句
switch语句也是一种基于条件判断的控制语句,用于根据不同的表达式值执行不同的代码块。switch语句通常的语法形式如下:
代码语言:java复制switch (expression) {
case value1:
// 如果expression的值等于value1,执行此代码块
break;
case value2:
// 如果expression的值等于value2,执行此代码块
break;
default:
// 如果expression的值不等于任何一个case中的值,执行此代码块
break;
}
其中,expression是需要进行判断的表达式,case后面的value是需要匹配的值。如果expression的值等于某一个case后面的value,则执行对应的代码块,并且程序会跳出switch语句。如果expression的值不等于任何一个case中的值,则执行default后面的代码块。
源代码解析
if语句
我们来看一个简单的if语句的例子,代码如下:
代码语言:java复制int num = 10;
if (num > 0) {
System.out.println("num是正数。");
} else {
System.out.println("num是负数或0。");
}
在这个例子中,我们定义了一个int类型的变量num,并且使用if语句对num进行了判断。如果num的值大于0,执行if后面的代码块,输出"num是正数。";否则执行else后面的代码块,输出"num是负数或0。"。
根据如上代码测试结果如下:
根据如上代码分析可得:
这是一段Java语言代码,它的作用是判断变量num的值是否为正数,如果是则输出"num是正数。",否则输出"num是负数或0。"。在这段代码中,使用了if-else语句来进行条件判断,当num大于0时,执行if语句块中的代码,即输出"num是正数。";否则执行else语句块中的代码,即输出"num是负数或0。"。
switch语句
我们再来看一个简单的switch语句的例子,代码如下:
代码语言:java复制int num = 2;
switch (num) {
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("参数错误。");
break;
}
在这个例子中,我们定义了一个int类型的变量num,并且使用switch语句对num进行了判断。根据num的值的不同,分别执行不同的代码块并输出相应的结果。
根据如上代码测试结果如下:
根据如上代码分析可得:
这段代码是一个 Switch 语句,用于在给定整数变量 num 的情况下,输出对应的星期几。在这个例子中,num 的值为 2,所以输出 "星期二。" 。如果 num 不在 1-7 的范围内,就会执行 default 中的代码块,输出 "参数错误。"。
应用场景案例
if语句
if语句常用于对某个变量或表达式的值进行判断,根据不同的情况执行不同的代码块。下面是一个应用if语句进行身份认证的例子:
代码语言:java复制package com.example.javase.se.controlProgram;
import java.util.Scanner;
/**
* @Author ms
* @Date 2023-11-12 22:08
*/
public class IfTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
if ("admin".equals(username) && "123456".equals(password)) {
System.out.println("身份认证成功。");
} else {
System.out.println("身份认证失败,请重新输入。");
}
}
}
在这个例子中,我们使用Scanner类从控制台获取用户输入的用户名和密码,然后使用if语句对用户名和密码进行判断。如果用户名为"admin"并且密码为"123456",则输出"身份认证成功。",否则输出"身份认证失败,请重新输入。"。
根据如上代码测试结果如下:
根据如上代码分析可得:
这段代码是一个简单的用户身份认证程序,通过控制台输入用户名和密码进行身份认证。如果输入的用户名是"admin"且密码是"123456",则认证成功,输出"身份认证成功";否则认证失败,输出"身份认证失败,请重新输入"。注意,在比较字符串时应该使用equals()方法。
switch语句
switch语句常用于对某个变量或表达式的值进行判断,根据不同的情况执行不同的代码块。下面是一个应用switch语句进行计算器运算的例子:
代码语言:java复制package com.example.javase.se.controlProgram;
import java.util.Scanner;
/**
* @Author ms
* @Date 2023-11-12 22:08
*/
public class SwichTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
double num1 = scanner.nextDouble();
System.out.println("请输入第二个数字:");
double num2 = scanner.nextDouble();
System.out.println("请输入运算符:");
char operator = scanner.next().charAt(0);
double result = 0.0;
switch (operator) {
case ' ':
result = num1 num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
System.out.println("无效的运算符。");
break;
}
System.out.println("计算结果为:" result);
}
}
在这个例子中,我们使用Scanner类从控制台获取用户输入的两个数字和运算符,然后使用switch语句对运算符进行判断。根据运算符的不同,我们执行不同的计算,并输出计算结果。
根据如上代码测试结果如下:
根据如上代码分析可得:
这是一个Java的计算器程序,读取用户输入的两个数字和运算符,然后进行相应的运算并输出结果。程序采用了switch语句来判断不同的运算符,并利用对应的运算符计算结果。用户可以在控制台输入数字和运算符,程序会自动计算并输出结果。
优缺点分析
if语句
优点
- 语法简单,易于理解和使用。
- 可以根据不同的条件执行不同的代码块,灵活性高。
- 可以嵌套使用,实现较为复杂的控制逻辑。
缺点
- 如果条件比较多,if语句嵌套层数较深,代码可读性会降低。
- 如果条件表达式判断不当,可能会造成逻辑缺陷或者程序出错。
switch语句
优点
- 可以根据不同的表达式值执行不同的代码块,可读性高。
- 语法简单,易于理解和使用。
- 效率高,因为编译器可以使用查找表优化switch语句的执行。
缺点
- 可以执行的操作有限,只适合于一些具有固定值的表达式的判断。
- 每个case需要加上break语句,否则会导致程序执行错误。
类代码方法介绍
定义if语句
在类中定义if语句的方法非常简单,只需要根据语法要求编写if语句即可。下面是一个类中定义if语句的例子:
代码语言:java复制public class Demo {
public static void main(String[] args) {
int num = 10;
if (num > 0) {
System.out.println("num是正数。");
} else {
System.out.println("num是负数或0。");
}
}
}
根据如上代码测试结果如下:
根据如上代码分析可得:
这段代码定义了一个名为Demo的类,并在main方法中定义了一个整型变量num并赋值为10。接着使用if结构进行判断,如果num大于0,就通过System.out.println()方法输出"num是正数。";否则输出"num是负数或0。"。最终结果将是"num是正数。"。
定义switch语句
在类中定义switch语句也非常简单,只需要根据语法要求编写switch语句即可。下面是一个类中定义switch语句的例子:
代码语言:java复制public class Demo {
public static void main(String[] args) {
int num = 6;
switch (num) {
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("参数错误。");
break;
}
}
}
在这个例子中,我们同样定义了一个Demo类,并且在main函数中定义了一个switch语句来根据不同的数值输出对应的结果。与if语句不同的是,switch语句需要使用case关键字来定义不同的条件分支,并且每个case分支需要以break结束。同时,可以使用default分支处理所有未被前面任何一个case分支匹配的值。
根据如上代码测试结果如下:
根据如上代码分析可得:
该代码为一个Java程序,包含一个名为Demo的类,其中有一个main方法。在main方法中,定义了一个整型变量num并赋值为6。然后使用了switch语句,根据num的值来判断输出哪一个星期几。如果num的值为1,则输出“星期一。”,如果num的值为2,则输出“星期二。”,以此类推。如果num的值不在1到7之间,则输出“参数错误。”。在每个case分支中使用了break语句来跳出switch语句。最终运行该程序,输出“星期六。”。
标准和最佳实践
在使用if和switch语句时,需注意以下标准和最佳实践:
- 尽可能避免使用过多的if语句嵌套,可以使用多个else if语句来代替。
- 在使用switch语句时,确保每个case分支都有对应的break语句。
- 使用if语句时,将常量写在等式左边可以避免出现空指针异常。
- 在对字符串进行比较时,使用equals方法而不是"=="运算符。
- 在处理复杂的控制逻辑时,可以考虑使用状态模式或策略模式等设计模式,避免使用过多的if和switch语句。
小结
- if语句用于根据不同的条件执行不同的代码块,switch语句用于根据不同的表达式值执行不同的代码块。
- if语句有灵活性强的优点,但是当条件比较多时,if语句的嵌套层数较深,代码可读性会降低。switch语句具有可读性高的优点,但是每个case需要加上break语句,否则会导致程序执行错误。
- 在使用if和switch语句时,需要注意一些标准和最佳实践,如避免使用过多的if语句嵌套、确保每个case分支都有对应的break语句、使用equals方法而不是"=="运算符等。
- 在处理复杂的控制逻辑时,可以考虑使用状态模式或策略模式等设计模式,避免使用过多的if和switch语句。
总结
在JavaSE中,if语句和switch语句都是非常实用的条件语句。if语句通常用于根据不同的条件执行不同的代码块,而switch语句通常用于根据不同的表达式值执行不同的代码块。在实际应用中,if和switch语句都有其优缺点,需要根据具体情况选择合适的语句。同时,在使用if和switch语句时,需要注意一些标准和最佳实践,以保证代码的可读性、可维护性和安全性。
... ...
文末
好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。
... ...
学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!
wished for you successed !!!
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!