Java基础之分支语句(if,switch)
代码语句可以分为:顺序语句,分支语句和循环语句
顺序语句,顾名思义就是自上向下依次执行。
今天我们主要讲讲分支语句,分支语句有if结构和switch结构
1.if结构语句
if结构语句有三种表达形式,我们一个一个来看
1.只有if的结构。
if(表达式){
当表达式为真时,执行此处代码;
}
2.if-else结构
if(表达式){
当表达式为真时,执行此处代码;
}else{
当表达式为假时,执行此处代码;
}
3.if-else if-else结构
if(表达式1){
当表达式1为真时,执行此处代码;
}else if(表达式2){
当表达式2为真时,执行此处代码;
}else if(表达式3){
当表达式3为真时,执行此处代码;
}
......
else{
以上条件都不满足时,执行此处代码;
}
注意:如果if后面只有一条语句,那么大括号可以省略,所以在网上看到没有大括号的if语句不要惊讶,这个是正常操作,但是不建议这么写,影响代码整体的可阅读性。
以上就是if结构的一些基本的写法,掌握好了这些以后,我们就可以进行深一点层次的使用,比如说嵌套,在if语句里面,嵌套if语句。举个例子:
/**
* 运用if结构简单的模拟一下登录操作
* 1.欢迎用户
* 2.提示用户输入账号
* 3.判断账号是否为空
* 4.提示用户输入密码
* 5.判断密码是否为空
* 6.判断账号密码是否正确
* 7.登陆成功
*/
import java.util.Scanner;
public class IfDemo{
public static void main(String[] args){
System.out.println("欢迎您!");
System.out.print("请输入您的账号:");
Scanner sca = new Scanner(System.in);
//用户键盘输入账号
String userName = sca.next();
//进行判断userName是否为空
if(userName.equals("")){
System.out.println("账号不能为空");
}else{
System.out.print("请输入您的密码:");
//用户键盘输入密码
String password = sca.next();
//进行判断password是否为空
if(password.equals("")){
System.out.println("密码不能为空");
}else{
//因为没有数据库存储,姑且先把账号,密码的值给定义死了
//进行判断userName是否为”admin“,且密码是否为”123“
if(userName.equals("admin") && password.equals("123")){
System.out.println("登陆成功!");
}
else{
System.out.println("您的账号密码不匹配");
}
}
}
}
}
这里大家可能有一个问题,判断userName的值的时候,为什么不用“= =”,这就涉及到一个小知识点了,如果是基本数据类型的话,通常可以使用“= =”来进行判断,“= =”判断的两边的存储地址,而上述代码userName是String类型,所以我们要用”equals“来进行判断,“equals”进行判断是两边的字符是否一致。
2.switch结构语句
switch(变量){
case 常量1 :
当变量与常量1相同时,执行此处代码;
break;
case 常量2 :
当变量与常量2相同时,执行此处代码;
break;
case 常量3 :
当变量与常量3相同时,执行此处代码;
break;
......
default :
当变量与以上常量都不相同时,执行此处代码;
break;
}
注意:1.常量值不能相同 ;2.break的含义为:跳出当前代码块,如果不添加break,那么代码会顺序执行,直到最后的default。3.case后面的语句部分可以有一条或多条语句(也可以没有,没有的话,顺序往下执行);
例如:
/**
* 使用switch模拟输入月份,返回是什么季节
* 1.欢迎用户
* 2.提示输入月份
* 3.根据输入的月份判断是什么季节
* 4.返回是什么季节
* 5.over
*/
import java.util.Scanner;
public class SwitchDemo{
public static void main(String [] args){
System.out.println("欢迎光临");
System.out.print("请输入月份:");
Scanner sca = new Scanner(System.in);
String month = sca.next();
switch(month){
case "1": System.out.println(month+"月是春季");
break;
case "2": System.out.println(month+"月是春季");
break;
case "3": System.out.println(month+"月是春季");
break;
case "4": System.out.println(month+"月是夏季");
break;
case "5": System.out.println(month+"月是夏季");
break;
case "6": System.out.println(month+"月是夏季");
break;
case "7": System.out.println(month+"月是秋季");
break;
case "8": System.out.println(month+"月是秋季");
break;
case "9": System.out.println(month+"月是秋季");
break;
case "10": System.out.println(month+"月是冬季");
break;
case "11": System.out.println(month+"月是冬季");
break;
case "12": System.out.println(month+"月是冬季");
break;
default: System.out.println("查地球没有此月");
}
System.out.println("over");
}
}
注:switch不能判断区间,只能判断值是否相同
还有一个小知识点:java1.7以下版本不支持判断字符串,只能对基本数据类型进行判断
java1.7及以上版本支持字符串
感谢大家观看!
本文地址:https://blog.csdn.net/qq_43336579/article/details/107693831
上一篇: JWT多系统登录鉴权、授权验证--可用
下一篇: 怎么查看电脑显卡支持不支持DX11?