javaSE之运算符补充及分支语句

一、运算符补充

1、比较运算符

(1)作用:做条件判断
(2)结果:布尔类型数据

符号说明
==判断符号前后是否相等,如果相等返回true;否则返回false
‘>’判断符号前是否大于符号后的数据,如果大于返回true;否则返回false
<判断符号前是否小于符号后的数据,如果小于返回true;否则返回false
>=判断符号前是否大于或者等于符号后的数据,如果大于或者等于返回true;否则返回false
<=判断符号前是否小于或者等于符号后的数据,如果小于或者等于返回true;否则返回false
!=判断符号前后是否不相等,如果不相等返回true;否则返回false
  public static void main(String[] args) {
        int i = 10;
        int j = 20;
        boolean result01 = i==j;
        System.out.println("result01 = " + result01);
        boolean result02 = i!=j;
        System.out.println("result02 = " + result02);
        boolean result03 = i>j;
        System.out.println("result03 = " + result03);
        boolean result04 = i<j;
        System.out.println("result04 = " + result04);
        boolean result05 = i>=j;
        System.out.println("result05 = " + result05);
        boolean result06 = i<=j;
        System.out.println("result06 = " + result06);
    }
运行结果:
    result01 = false
    result02 = true
    result03 = false
    result04 = true
    result05 = false
    result06 = true

2、逻辑运算符

1.作用: 连接多个boolean表达式, 将多个判断连接在一起成为一个大的条件
2.结果: boolean型结果

符号说明
&&(与,并且)有假则假,符号前后有一个结果为false,整体就是false
丨丨(或)有真则真,符号前后有一个结果为true,整体就是true
!(非,取反)不是真,就是假;不是假,就是真
^(异或)符号前后结果一样为false;不一样为true
true^true -> false
false^false -> false
true^false -> true
false^true -> true
   public static void main(String[] args) {
        int i = 10;
        int j = 20;
        int k = 10;
        System.out.println((i > j) && (i == k));
        System.out.println((i > j) || (i == k));
        System.out.println(!(i > j));
        System.out.println((i > j) ^ (i == k));
    }
    
返回结果:
    false
    true
    true
    true


短路效果:
| && | 双与具有短路效果,双与是有假则假,如果符号前面为false,符号后面不执行了 |
| & | 单与没有短路效果,单与时有假则假,如果符号前面为false,符号后面会继续执行 |
| || | 双或具有短路效果,双或是有真则真,如果符号前面为true,符号后面不执行了 |
| | | 单或没有短路效果,单或是有真则真,如果符号前面为true,符号后面会继续执行 | 

短路示例:
        int a=10;
        int b=20;
        boolean result = (++a>100) & (++b>100);
        System.out.println(result);
        System.out.println(a); 11
        System.out.println(b); 21
        
        如果为&& 符号则结果为false,则后面不执行 b=20

3、三元运算符

1.格式:boolean表达式?表达式1:表达式2
2.执行流程:先走boolean表达式,如果是true,就走?后面的表达式1;否则就走:后面的表达式2

代码示例:
public class SanYuan {
    public static void main(String[] args) {
//        需求1:定义一个变量代表分数,随意给这个变量一个值,判断这个分数是否及格
        int score = 60;
        String result = score>=60?"及格":"不及格";
        System.out.println(result);
//        需求2:寺庙有2个和尚,身高分别为210 170,判断最高身高
        int h1 = 210;
        int h2 = 170;
        String result1 = h1>h2?"和尚1高":"和尚2高";
        System.out.println(result1);
//        需求3:寺庙有3个和尚,身高分别为210  170  150,判断最高身高
        int h3 = 210;
        int h4 = 170;
        int h5 = 150;
        String result2 = h3>h4?(h3>h5?"和尚3高":"和尚5高"):(h4>h5?"和尚4高":"和尚5高");
        System.out.println(result2);
    }
}
运行结果:
    及格
    和尚1高
    和尚3高

二、Scanner键盘输入(需要关闭)

1.概述:java提前定义好的一个类
2.作用:通过键盘录入的形式将数据放到代码中参与运行
3.怎么用:
a.导包:为了找到我们想要使用的类 -> idea自动导包,不需要我们自己手动导包
import 包名.类名 import java.util.Scanner
b.创建对象:
Scanner 变量名 = new Scanner(System.in)
c.调用方法,实现键盘录入
变量名.nextInt() 录入int型整数的
变量名.next() 录入String字符串的

示例代码:
 public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        //调用方法,实现键盘录入
        int data1 = sc.nextInt();
        System.out.println("data1 = " + data1);
        String data2 = sc.next();
        System.out.println("data2 = " + data2);

        //关闭scanner对象
        sc.close();

        Scanner sc1 = new Scanner(System.in);
        int heShang1 = sc1.nextInt();
        int heShang2 = sc1.nextInt();
        int heShang3 = sc1.nextInt();
        int temp = heShang1 >heShang2 ? heShang1 : heShang2;
        int max = temp > heShang3 ? temp : heShang3;
        System.out.println(max);

        //关闭Scanner
        sc.close();
    }
补充:
    next()于nextLine()的区别:
    next()方法:遇到空格和回车就结束录入
    nextLine()方法:遇到回车结束录入
示例代码:
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的姓名:");
    String name = sc.nextLine();
    System.out.println(name);
    sc.close();

三、Switch选择语句

1、基本使用

1.格式
初始化变量
switch(变量){
case 目标值:
执行语句1;
break;

  case 目标值2:
      执行语句2;
      break;
      
  case 目标值3:
      执行语句3;
      break;
  ...
      default:
      执行语句n;
      break;

2.执行流程:
用初始化的变量的值和下面case后面的目标值做匹配,配上哪个case后面的目标值,就走哪个case对应的执行语句

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字:");

        switch (sc.nextInt()){
            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("输入错误");
        }
    }

输入数字 1 返回结果 星期一

2、case的穿透性

如果case语句内没有break,则会往下穿透执行,直到遇到break或switch语句完成

3、JDK新特性Switch写法(yield)

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字:");
        String season = switch (sc.nextInt()) {
            case 1, 2, 3 -> {
                yield "春天";
            }
            case 4, 5, 6 -> {
                yield "夏天";
            }
            case 7, 8, 9 -> {
                yield "秋天";
            }
            case 10, 11, 12 -> {
                yield "冬天";
            }
            default -> {
                yield "输入错误";
            }
        };
        System.out.println(season);
    }
直接返回season的赋值

四、分支语句

1、if的第一种格式

1.格式: if(boolean表达式){
          执行语句
        }
2.执行流程:先判断if后面的boolean表达式,如果是true,就走if后面的执行语句
3.示例代码:
public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
         int data1 = sc.nextInt();
         int data2 = sc.nextInt();
         if(data1 > data2){
             System.out.println("data1 > data2");
         }
}

2、if的第二种格式

1.格式:  if(boolean表达式){
              执行语句1
          }else{
              执行语句2
          }
2.执行流程:a.先走if后面的boolean表达式,如果是true,就走if后面的执行语句1
         b.否则就走else后面的执行语句2 
3.示例代码:
 public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         int data1 = sc.nextInt();
         int data2 = sc.nextInt();
         if(data1 > data2){
             System.out.println("data1 > data2");
         }else{
             System.out.println("data1 < data2");
         }
    }
 

3、if的第三种格式

1.格式:   if(boolean表达式){
      执行语句1
  }else if(boolean表达式){
      执行语句2
  }else if(boolean表达式){
      执行语句3
  }...else{
      执行语句n
  }
2.执行流程:从if开始挨个往下判断,哪个if条件成立了,就走哪个if对应的执行语句,如果以上所有的判断都不成立,就走else对应的执行语句n
3.示例代码:
   public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         int data1 = sc.nextInt();
         int data2 = sc.nextInt();
         if(data1 > data2){
             System.out.println("data1 > data2");
         }else if (data1 == data2){
             System.out.println("相等");
         }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值