java day03

运算符

算术运算符

直接看代码:

public class AriTest {
    public static void main(String[] args){
        //除号
        int num1 = 12;
        int num2  =5;
        int result1 = num1 / num2;
        System.out.println(result1);//2

        int result2 = num1 / num2 * num2;
        System.out.println(result2);//10

        double result3 = num1  / num2;
        System.out.println(result3);//2.0

        double result4 = (double)num1 / num2;
        System.out.println(result4);//2.4

        double result5 = num1 / (num2+0.0);
        System.out.println(result5);//2.4
//*****************************************************************
        // %
        //结果的符号与被模数的符号一致

    int m1 = 12;
    int n1 = 5;
    System.out.println("m1 % n1 = " + m1 % n1);//2

    int m2 = -12;
    int n2 = 5;
    System.out.println("m2 % n2 = " + m2 % n2);//-2

    int m3 = 12;
    int n3 = -5;
    System.out.println("m3 % n3 = " + m3 % n3);//2

    int m4 = -12;
    int n4 = -5;
    System.out.println("m4 % n4 = " + m4 % n4);//-2

   //*****************************************************

   // (前)++|--   先自增(自减)1,然后再运算
   //(后)++|--     先运算,后自增(自减)1

     int a1 = 10;
     int b1 = ++a1; //先赋值再运算
     System.out.println("a1 = "+ a1 + ",b1 = " + b1);

        int a2 = 10;
        int b2 = a2++; // 先运算再赋值
        System.out.println("a2 = "+ a2 + ",b2 = " + b2);

        short s1 =10;
        //s1 = s1 + 1; //出错,不能从int转为short
        s1 = (short)(s1 + 1);
        System.out.println(s1);


    }
}

赋值运算符

符号:=

  • 当“ = ” 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
  • 支持连续辅助

拓展:
+= 、-= 、 *= 、 /= 、 %=

public class SetValueText {
    public static void main(String[] args){

        int i1 =10;
        int j1 = 10;

        //连续赋值
        int i2,j2;
        i2 = j2 = 10;

        int i3 = 10,j3 = 30;

        //********************************************
        int num1 = 10;
        num1  += 2;
        System.out.println(num1); //12 以此类推,加减乘除都一样
    }

}

比较运算符

public class AriText {
    public static void main(String[] args){

        int i =10;
        int j = 20;
        System.out.println(i == j);//false
        System.out.println(i =j);//20

        boolean b1 = true;
        boolean b2 = false;
        System.out.println(b2 == b1);//false   判断是否相等
        System.out.println(b2 = b1);//true      赋值运算
    }
}

逻辑运算符

& —— 逻辑与 、 |—— 逻辑或 、 ! —— 逻辑非
&&—— 短路与 、 || —— 短路或 、 ^ —— 逻辑异或

public class LogicText {
    public static void main(String[] args){

        //区分 & 与 &&
        // 相同点1:& 与&&的运算结果相同
        // 相同点2:当符号左边是true时,而这都会执行括号右边的运算
        // 不同点: 当符号左边是false时,&继续执行符号右边的运算,&&则会短路,不继续运算

        boolean b1 = false;
        int num1 = 10;
        if(b1 & (num1++ >0)){

            System.out.println("我现在在北京");
        }else{
            System.out.println("我现在在南京");
        }

        System.out.println("num1 = " + num1);


        boolean b2 = false;
        int num2 = 10;
        if(b2 && (num2++ >0)){    //b2为true 需要看后面(num2++ >0)  若b2为false 则不需看后面的那个,&& 短路

            System.out.println("我现在在北京");
        }else{
            System.out.println("我现在再南京");
        }

        System.out.println("num2 = " + num2);

        // | 与|| 的区别与 & 与 && 的区别一样


        //区分 | 与 ||
        // 相同点1:| 与||的运算结果相同
        // 相同点2:当符号左边是false时,而这都会执行括号右边的运算
        // 不同点: 当符号左边是true时,&继续执行符号右边的运算,||则会短路,不继续运算

        boolean b3 = false;
        int num3 = 10;
        if(b3 | (num3++ >0)){

            System.out.println("我现在在北京");
        }else{
            System.out.println("我现在在南京");
        }

        System.out.println("num3 = " + num3);


        boolean b4 = true;
        int num4 = 10;
        if(b4 || (num4++ >0)){

            System.out.println("我现在在北京");
        }else{
            System.out.println("我现在在南京");
        }

        System.out.println("num4 = " + num4);




    }
}

位运算符

package day02;

//结论:
//1.位运算符操作的都是整型的数据
//2.<<:在一定范围内,每向左移1位 相当于*2
//3.>>:在一定范围内,每向右移1位 相当于 / 2

public class BitTest {

    public static void main(String[] args){
        int i = 21;

        System.out.println("i<<2:"+(i<<2));
        System.out.println("i<<3:"+(i<<3));
        System.out.println("i<<27:"+(i<<27));



        int num1 = 10;
        int num2 = 20;
        System.out.println("num1 = " + num1 + ",num2 = " + num2);

       /** int temp =  num1;
        num1 = num2;
        num2 = temp;
        System.out.println("num1 = " + num1 + ", num2 = " + num2);*/

        //方法二: 好处:不用定义临时变量
        //弊端:相加操作可能超出存储范围,有局限性,只能适用于数值类型。
        //num1 = num1 + num2;
        //num2 = num1 - num2;
        //num1 = num1 - num2;

        //方法三:使用位运算符
        num1 =  num1 ^ num2 ;
        num2 = num1 ^ num2;
        num1 =  num1^num2;
        System.out.println("num1 = " + num1 + ", num2 = " + num2);


    }
}

三元运算符

package day02;

import sun.awt.windows.WPrinterJob;

/*
三元运算符:
1.结构:(条件表达式)?表达式1:表达式2
2.说明
①条件表达式的结果位boolean类型
②根据表达式真或假,决定执行表达式1,还是表达式2
    如果表达式为true,则执行表达式1
    如果表达式为false,则执行表达式2
③表达式1 和表达式2 要求类型时一致的
④ 三目运算符 可以嵌套




 */
public class SanYuanText {
    public static void main(String[] args){

        //int m = 12;
        //int n = 150;
        //int max = (m > n)?m:n;

        int m = 12;
        int n = 150;
       // int max = (m > n)?2:1.0; //报错
        double max = (m > n)? 2:1.0;//可以

        System.out.println(max);


        int n1 =12;
        int n2 = 13;
        int n3 = 14;

        int max1 = (((n1>n2)? n1 : n2) >n3)? ((n1>n2)? n1 : n2):n2;

        System.out.println(max1);


    }
}



运算符的优先级

在这里插入图片描述

分支结构

public class IfText {
    public static void main(String[] args){

        //举例1
        int  heartBeats = 79;
        if (heartBeats < 60 ||heartBeats>=120){
            System.out.println("需要进一步检查");
        } else{

            System.out.println("检查结束");
        }


        //举例2
        int age = 80;
        if(age<18){
            System.out.println("1");
        }else if(age>=18 & age<36){
            System.out.println("2");
        }else if (age >=36 & age<48){
            System.out.println("3");
        }else if (age >=48 & age<60){
            System.out.println("4");
        }else{
            System.out.println("5");
        }
    }
}

循环结构

public class IfText {
    public static void main(String[] args){

        //举例1
        int  heartBeats = 79;
        if (heartBeats < 60 ||heartBeats>=120){
            System.out.println("需要进一步检查");
        } else{

            System.out.println("检查结束");
        }


        //举例2
        int age = 80;
        if(age<18){
            System.out.println("1");
        }else if(age>=18 & age<36){
            System.out.println("2");
        }else if (age >=36 & age<48){
            System.out.println("3");
        }else if (age >=48 & age<60){
            System.out.println("4");
        }else{
            System.out.println("5");
        }
    }
}

Scanner从键盘获取int型数据

package day02;
/*
从键盘获取数据
步骤:
    1.导包:import java.util.Scanner;
    2.Scanner的实例化  Scanner scan = new Scanner(System.in);
    3.调用Scanner类的相关方法(next() / netXxx(),来获取指定类型的变量

    注意:
    需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchExce
    导致程序终止。
 */

    //1.导包: import java.util.Scanner;


import java.util.Scanner;
public class ScannerText {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.print("请你输入姓名:");
        String name = scan.next();    //字符串
        //int num = scan.nextInt();
        System.out.println(name);


        System.out.print("请你输入年龄:");
        int age = scan.nextInt();   //int型
        System.out.println(age);

        System.out.print("请输入体重:");
        double weight = scan.nextDouble(); //double型
        System.out.println(weight);

        System.out.print("是否单身:");
        boolean isLove = scan.nextBoolean(); //boolearn型
        System.out.println(isLove);

        System.out.print("请输入男/女:");
        String gender = scan.next();
        char genderChar = gender.charAt(0);
        System.out.println(genderChar);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值