• 【3】java运算符


    概述

    一、表达式
    什么是表达式。由一系列预算付和操作数组成
    如:5,a,m+3,sum=a+b,n=x*y+(x%2)-(x/y)
     
    二、运算符
    1、算术运算符(+,-,*,/,%,++,--),
    2、赋值运算符(=,+=,-=,*=,/=,%=),例如:a+=b,等于:a=a+b
    3、关系运算符(==,!=,<,<=,>,>=)
    4、逻辑运算符(!,&,&&,|,||) && 或 || : 短路运算符,就是前面表达式结果能直接决定整个表达式结果,就不需要判断后面表达式结果
    5、条件运算符(? :) 例:a>b?a:b; //a>b,成立为a,不成立为b; java中唯一的三目表达式,意思是操作三个数
    6、位运算符(本次没讲解)
     
    三、运算符的优先级

    一、赋值运算符

    格式:变量 = 表达式
    注意:赋值运算符是从右往左运算
    赋值运算符的左边只能是变量不能是常量

    二、算数运算符

    算数运算符:
    1)作用:算数运算符主要用于进行基本的算数运算,如加法、减法、乘法和除法等;
    2)分类:
    加法(+)、减法(-)、乘法(*)、除法(/)、求余数(%)、自增1(++)、自减1(--);
    3)注意:除法的分子分母都是整型时,结果为整除后的结果;
    除法的分子分母有任意一个为小数时,结果为小数。

        public static void main(String[] args) {
            int num1=10,num2=5,result;
            result=num1+num2;
            System.out.println(num1+"+"+num2+"="+result);
    
            // 字符串连接:值+字符串=字符串;从左往右依次运行
            System.out.println(""+num1+num2);
            //减法
            result=num1-num2;
            System.out.println(num1+"-"+num2+"="+result);
            //乘法
            result=num1*num2;
            System.out.println(num1+"*"+num2+"="+result);
            //除法
            result=num1/num2;
            System.out.println(num1+"/"+num2+"="+result);
            //分子分母都是整型时,结果为整除后的结果
            System.out.println(13/5);
            //有一个是浮点型,结果就有小数
            System.out.println("13.0/5="+13.0/5);
            //求余数
            result=13%num2;
            System.out.println("13%"+num2+"="+result);
            System.out.println("13.5%5="+(13.5%5));
        }
    注意:
    1.字符串连接:有字符串在,输出的都是连接后的字符串;
    只有数值的话,输出的就是运算后的数值结果;
    2.整除中的数有小数,结果就有小数

    自增自减运算符

     
    自增自减在前:先自增自减,后运算
    自增自减在后:先运算,后自增自减 (即使自增自减在括号内,也是如此)
     

    三、关系运算符

    1)分类:>、<、>=、<=、==、!=;
    2)比较运算符用于判断两个数据的大小;
    3)比较的结果是一个布尔值;
    4)字符型数值比较的是两个字符的ASCII值,'A' >'B' 结果false;
    5)浮点数与整数比较,只要相等就返回true,float f =5.0f; long l =5; f==l; 结果为true;
     
     

    if条件结构

    关系运算符主要用于条件和循环语句中的判断条件
    简单if语句的格式:
    if(条件){
    <语句块>
    }
     
    举例:
    class ConditionDemo1 {
        public static void main(String[] args) {
        //商场打折,如果两件商品的价格大于100则减20,并把原价和折后价分别输出。
        //定义两个变量,分别存放两件衣服的价格
            double price1,price2;
            price1=80;
            price2=55;
        //计算两件商品的总价格
            double sum=price1+price2;
        //输出原价
            System.out.println("原价为"+sum);
            if(sum>100) {
                sum=sum-20;//sum-=20;
            }
            System.out.println("折后价为"+sum);
        }
    }
    
    //原价为135.0
    //折后价为115.0

    if-else条件结构

    格式:
    if(条件){
        <语句块>
        }else{
        <语句块>
        }

     举例:

    public class ConditionDemo2 {
        public static void main(String[] args) {
    //判断一个整数是基数还是偶数,并将结果输出。
    //定义一个变量存放数据
    // int n=11;
    // 从键盘接收数据
            System.out.println("请输入一个整数:");
            Scanner s = new Scanner(System.in);//s变量
            int n = s.nextInt();//接收键盘输入的s
            if (n % 2 == 0) {
                System.out.println(n + "是偶数!");
            } else {
                System.out.println(n + "是基数!");
            }
        }
    }
    //请输入一个整数:
    //10
    //10是偶数!
     

    四、逻辑运算符

    1)种类:与(&&或&)、或(||或|)、非(!);
    2)注意:逻辑运算符的操作数都是布尔类型的。
     

    逻辑与运算符(&&)

    1)&&:又叫短路运算,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了;
    2)&:即使运算符左边表达式的值为false,也会继续执行运算符右边的表达式。
    例如:
    int n=3; boolean b=(3>7)&((n++)<2);
    结果为b=false,n=4。
    若boolean b=(3>7)&&((n++)<2);
    结果为b=false,n=3。
     

    逻辑“或”运算符(||)

    1)运算逻辑:
      只要运算符左右两边的表达式的值有一个为true,则结果为true;
      当运算符左右两边的表达式的值都为false,则结果为false;
    2)特点:||也是短路运算符,只要有一个表达式的结果为true,则整个表达式的值一定为true,且第二个表达式就不会进行计算了。
     
    例如: int n =3;boolean b = (3<7)|((n++)<2) 结果为b =true,n=4 int n=3;boolean b = (3<7)||((n++)<2)
    结果为b=true,n=3;

    逻辑“非”运算符(!) 

    对原条件进行取反。格式 !(n%3==0)
    举例:
    public class LogicDemo3 {
        public static void main(String[] args) {
    //输入一个整数
            System.out.println("请入一个整数:");
            Scanner sc=new Scanner(System.in);
            int n=sc.nextInt();
            if(!(n%3==0)) {
                System.out.println(n+"不能被三整除");
            }else {
                System.out.println(n+"能被三整除13");
            }
        }
    }
    
    //请入一个整数:
    //12
    //12能被三整除

    五、条件运算符(三目运算符)

     
    语法: 布尔表达式?表达式1:表达式2
    例如:a>b?a:b 当布尔表达式的值为true,返回表达式1的值,否则返回表达式2的值

     举例:
    public class Demo4 {
        public static void main(String[] args) {
        //求a,b的最大值
            int a=1,b=7,max;
            if(a>b) {
                max=a;
                System.out.println("max="+max);
            }else {max=b;
                System.out.println("max="+max);
            }
            max=a>b?a:b;//前面那么多行代码,可以只用这一行
            System.out.println("max="+max);
    
            boolean b1=a>b?(3<6&&4>3):(true==false);// :的两边也可以是复杂的表达式
            System.out.println("b1="+b1);
        }
    }

    六、运算符的优先级

    算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

    七、运算符案例 

    判断是否是闰年
    提示闰年的判断规则:能被4整除但不能被100整除的年份,或者能被400整除的年份
    public class LeapYearDemo {
        private static Scanner sc;
        public static void main(String[] args) {
            sc = new Scanner(System.in);
            int year;
            while (true) {
                System.out.println("请输入年份:");
                year=sc.nextInt();
                if(((year%4==0)&(year%100!=0))|(year%400==0)) {
                    System.out.println(year+"是闰年");
                }else {
                    System.out.println(year+"不是闰年");
                }
            }
        }
    }
    请输入年份: 2000
    2000是闰年
    请输入年份: 2004
    2004是闰年
    请输入年份: 1995
    1995不是闰年

     

  • 相关阅读:
    SQL 07: 外连接 (左连接和右连接查询)
    010 利用多线程使socket服务端可以与多个客户端同时通讯
    056 文件修改的两种方式
    009 模拟一个简单抢票小程序代码
    055 文件的高级应用
    054 with管理文件操作上下文
    008 通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题)
    053 文件的三种打开模式
    052 绝对路径和相对路径
    051 基本的文件操作
  • 原文地址:https://www.cnblogs.com/haifeima/p/12574122.html
Copyright © 2020-2023  润新知