浅淡逻辑运算符、if 语句、switch语句的理解和使用

一、逻辑运算符

1、 逻辑运算返回的结果只能为 boolean 型 ,false or true

2、逻辑运算符包括:& 、| 、 && 、|| 、!、^ (逻辑与、逻辑或、短路与、短路或、非、异或)

         (1)、& 逻辑与,两边的结果任意一个为 false ,结果为 false ,两边都为 true,结果为 true

                  eg: int num1 = 1, num2 = 2, num3 = 3;

                     System.out.println( num1>num2 & num1< num3) ; // 结果为 false

                        num1>num2 为false ,num1

       ( 2)、| 逻辑或 ,两边的结果任意一个为 true,结果为 true, 两边的结果都为 false ,结果为                      false

                eg: int num1 = 1, num2 = 2, num3 = 3;

                System.out.println( num1>num2 | num1< num3); // 结果为 true

                num1>num2 为false ,num1

        (3)、&& 逻辑与,两边的结果任意一个为 false ,结果为 false ,两边都为 true,结果为 true

                eg: int num1 = 1, num2 = 2, num3 = 3;

                System.out.println( num1>num2 && num1< num3); // 结果为 false

                num1>num2 为false ,num1

         (4)、|| 逻辑或 ,两边的结果任意一个为 true,结果为 true, 两边的结果都为 false ,结果为                     false

                eg: int num1 = 1, num2 = 2, num3 = 3;

                System.out.println( num1>num2 || num1< num3) ; // 结果为 true

                num1>num2 为false ,num1

        (5)、! 非,取相反的值 非 true 为 false。

                eg:

                boolean flag = true;

                System.out.println( flag ); // 结果为true

                System.out.println( ! flag ); //结果为 false

        (6)、^ 异或 判断运算符两边是否不同,如果两边的结果相同,结果为 false。两边结果同,         结果为 true

                eg: int num1 = 1, num2 = 2, num3 = 3;

                System.out.println( num1>num2 ^ num1< num3) ; // 结果为 true

                System.out.println( num1

3、& 逻辑与 和 && 短路与的区别

        & 逻辑与 执行左边的表达式时,无论结果是 true 或 false ,都会执行完右边的关系式

        && 短路与 执行左边的表达式时,若结果为 false,则不会执行右边的表达式。执行左边的表达式时,结果为 true,会执行右边的表达式。

        public class Demo02{

        public static void main(String[] args){

        boolean flag1 = true;

        boolean flag2 = true;

        // & 逻辑与 运算符两边,只要有一个false,结果则为false 并且

        //当运算符左边为false时,继续运行运算符右边的代码

        System.out.println(false & (flag1 = false));//false

        // && 短路与 运算符两边,只要有一个false,结果则为false 并且

        //当运算符左边为false时,直接返回结果

        System.out.println(false && (flag2 = false));//false

        System.out.println("flag1:"+flag1);

        System.out.println("flag2:"+flag2);

        // | 逻辑或 运算符两边,只要有一个true,结果则为true 或者

        // || 短路或 运算符两边,只要有一个true,结果则为true 或者

                }

        }

二、if 语句

1、if (关系表达式){

语句体1;

语句体2;

……

语句体n;

}

关系表达式的结果为 true ,才会执行大括号中的 语句体1,语句体2,……语句体n。

eg:

boolean flag = flase ;

if (flag){

System.out.println("靓仔");

}

//什么也没有输出,因为 flag 为 false,所以不执行System.out.println("靓仔");

if ( ! flag ){

System.out.println("靓仔");

}

// ! false 为 非false 结果是 true ,则执行System.out.println("靓仔");输出 靓仔

2、if 语句的配套使用

        if (关系表达式){ 语句体;}

        else{ 语句体; }

        eg:

        int num1 = 1, num2 = 2,num3 = 3;

        if (num1

        esle { System.out.println("靓女"); }

        // num1System.out.println("靓仔");输出 靓仔

        if (num1>num2) { System.out.println("靓仔"); }

        esle { System.out.println("靓女"); }

        // num1>num2 相当于 1>2 ; 结果为:false,会执行System.out.println("靓女");输出 靓女

        2.1、实战代码

public class Demo03{

/*

if(关系表达式){

语句体

}

程序运行到if语句时,当关系表达式返回true则执行语句体,然后结束if语句

当关系表达式返回false则直接结束if语句

*/

public static void main(String[] args){

int age = 20;

//age >= 18返回true

if(age >= 18){

System.out.println("成年");

}

System.out.println("未成年");

System.out.println("程序即将结束");

}

}

3、if 语句 嵌套使用

if (关系表达式){ 语句体1;}

esle if (关系表达式) { 语句体2;}

else if (关系表达式){ 语句体3;}

else if (关系表达式){ 语句体4;}

实战代码如下:

/*

if(关系表达式1){

语句体1

}else if(关系表达式2){

语句体2

}else if

...

else if(关系表达式n){

语句体n

}else{

语句体n+1

}

程序运行到if语句

进行关系表达式1的判断,如果返回true,则执行语句体1然后结束if语句

如果关系表达式1返回false,则进行关系表达式2的判断,关系表达式2如果返回true,则执行语句体2并结束if语句

如果关系表达式2返回false...

如果所有关系表达式都返回false,则执行else里的语句体n+1,如果没有else则结束if语句

10以下:熊孩子

10-18:少年

18-30:靓仔、靓女

30-50:钻石王老五

50-80:大爷、老北鼻

*/

import java.util.Scanner;

public class Demo06{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

System.out.println("请输入年龄");

int age = sc.nextInt();

//判断年龄是否合理

if(0 < age && age

//合理年龄的判断

if(age < 10){

System.out.println("熊孩子");

}else if(age< 18){

System.out.println("少年");

}else if(age

System.out.println("靓仔、靓女");

}else if(age

System.out.println("钻石王老五");

}else{

System.out.println("老北鼻");

}

}else{

System.out.println("年龄不合理");

}

}

}

三、switch语句

1、switch表达式允许的类型: byte、short、int、char、String(JDK1.7新特性)

                        不允许: long、float、double、boolean

switch (表达式) {

case 值1 :

语句体1;

break;

case 值2 :

语句体2;

break;

case 值3 :

语句体3;

break;

default :

语句体(可有可无);

break;

}

2、实战代码:

/*

switch(表达式){

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

case 值3:

语句体3;

break;

...

default:

语句体n+1;

break;

}

程序运行到switch的时候,表达式与值1进行等值判断,如果相等则执行语句体1,遇到break结束switch语句

如果不相等则与值2进行等值判断,如果判断相等则执行语句体2,遇到break结束switch语句

...

如果表达式与所有case的值比较都不相等,则执行default里的语句体n+1

*/

//import java.util.Scanner;

import java.util.Random;

public class Demo09{

public static void main(String[] args){

//Scanner sc = new Scanner(System.in);

//System.out.println("请输入星期数");

//int num = sc.nextInt();

//随机生成1-8

Random ran = new Random();

//nextInt() -- [0,1) 随机生成0~1的数,包含0不包含1

//nextInt(8) -- [0,8) 随机生成0~8的数,包含0不包含8

//nextInt(8) + 1 随机生成1~9的数,包含1不包含9

int num = ran.nextInt(8) + 1;

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;

}

}

}

1.default是否一定要在最后

语法结构完整的情况下可以在switch语句的任意位置

2.default是否可以省略不写

语法结构完整的情况下可以省略不写

3.break是否可以不写

可以,根据需求来决定

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于Spring Boot整合MyBatis和JUnit的问题,可以按照以下步骤进行操作: 1. 首先,确保你已经添加了相关的依赖。在`pom.xml`文件添加以下依赖: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis Starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- JUnit 5 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` 2. 创建数据库配置。在`application.properties`文件添加数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/db_name spring.datasource.username=db_username spring.datasource.password=db_password spring.datasource.driver-class-name=com.mysql.jdbc.Driver # MyBatis配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.domain ``` 3. 创建MyBatis映射配置文件。在`resources`目录下创建`mapper`目录,并编写对应的XML文件,例如`UserMapper.xml`: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <!-- SQL语句定义 --> </mapper> ``` 4. 创建实体类和Mapper接口。在`com.example.domain`包下创建实体类和对应的Mapper接口,例如`User.java`和`UserMapper.java`: ```java // User.java public class User { private Long id; private String name; // 省略getter和setter } // UserMapper.java @Mapper public interface UserMapper { User findById(Long id); // 其他方法定义 } ``` 5. 编写Service层和Controller层代码。按照你的业务需求编写对应的Service和Controller代码。 6. 编写JUnit测试代码。在`src/test/java`目录下创建测试类,例如`UserMapperTest.java`: ```java @SpringBootTest @RunWith(SpringRunner.class) public class UserMapperTest { @Autowired private UserMapper userMapper; @Test public void testFindById() { Long id = 1L; User user = userMapper.findById(id); Assert.assertNotNull(user); System.out.println(user.getName()); } } ``` 以上就是简单的Spring Boot整合MyBatis和JUnit的步骤。根据你的具体需求,可以适当调整代码和配置。希望能对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值