• Java学习笔记之:java运算符


    一、介绍

    计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:

    • 算术运算符
    • 关系运算符
    • 位运算符
    • 逻辑运算符
    • 赋值运算符
    • 其他运算符

    二、笔记

    1.算数运算符

    package com.hgd.study2;
    
    /**
     * 算数运算符
     * + - * / % ++ --
     * @author HuTiger
     *
     */
    public class ArithmeticOperator {
    
        public static void main(String[] args) {
            /*
             * %取模:取余数,一般用来判断一个数能不能被整除,比如分页的时候
             * 场景:
             * 数据库表中有N条数据,要求每页显示10条,用一个表达式来表示他的总页数
             * 如果N%10==0  n/10 else n/10+1
             * 
             */
            
            int i=25;
            int result =i%5;//定义一个变量用来保存取模后的数据
            System.err.println(result);
            
            result =i%6;//定义一个变量用来保存取模后的数据
            System.err.println(result);
            
            result=i%10;
            System.err.println(result+"	"+i/10);
            System.out.println("----------------------");
            //-------------------------------------
            
            /*
             * ++ 自增:在自身的数值上面增加相应的大小
             */
            int num =1;
            num=num+1;
            System.out.println(num);//2
            
            num++;//相当于num=i+1
            System.out.println(num);
            
            /*
             * ++在前:先进行自增再运算
             * ++在后:先运算再自增
             */
            int a=1;
            int b=1;
            a++;
            ++b;
            System.out.println(a);
            System.out.println(b);
            
            int ra=1+ a++;
            int rb=1+ ++b;
            System.out.println(ra);
            System.out.println(rb);
            
            /*
             * 练习
             */
    //        int i=1;
    //        int result=i+ i++ + ++i + --i - i-- + i++;
          
    //        int i=1;
    //        int r=i++;
    //        System.out.println(r);
        }
    }

    2.关系运算符

    package com.hgd.study2;
    
    /**
     * 关系运算符
     * == != > < >= <=
     * 表达式的结果为布尔类型
     * @author HuTiger
     *
     */
    public class RelationalOperator {
    public static void main(String[] args) {
        System.out.println(1==1);
        System.out.println(2>3);
        
        int i=10;
        System.out.println(i%3>4);
    }
    }

    3.位运算符

    package com.hgd.study2;
    
    /**
     * 位运算符:
     * 按位与运算符(&)
     * 按位或运算符(|)
     * 按位异或运算符(^)
     * 按位取反运算符(~)
     * 左移位运算符(<<)和右移位运算符(>>)
     * 1.按位与运算符(&)
     * 参与运算的两个值,如果两个相应的位都为1,则结果为1,否则为0.
     * 即0&0=0,0&1=0,1&0=0,1&1=1
     * 2.按位或运算符(|)
     * 参与运算的两个值,如果两个相应的位都为0,则结果为0,否则为1.
     * 即0&0=0,0&1=1,1&0=1,1&1=1
     * 3.按位异或运算符(^)
     * 参与运算的两个值,如果两个相应的位某一位是1,另一个是0,那么按位异域(^)在该位的结果为1    ,
     * 也就是说如果两个相应位相同,输出位为0,否则为1.
     * 即0&0=0,0&1=1,1&0=1,1&1=0
     * 4.按位取反运算符(~)
     * 按位取反运算符(~)属于一元运算符,他只对一个自变量进行操作(其他都是二元运算符)
     * 按位取反生成与输入位的相反的值--若输入0,则输出1,若输入1则输出0
     * 即:~0=1,~1=0
     * 5.左移位运算符(<<)
     * 运算符<<执行一个左移位。作左移位运算时,高位溢出,低位补0,右边的空位补0,在不产生溢出的情况下,数据左移1位相当于x2例如
     * int a=64;
     * b=a<<1 //b=128
     * 6.右移位运算符(>>)
     * 运算符<<执行一个右移位(带符号),操作数的构成二进制位右移若干位,低位溢出舍弃,高位补充原来高位的值(右移一位相当于除2取商)
     * 例如 int a=16,b;
     * b=a>>2; //b=4
     * 
     * @author HuTiger
     *
     */
    public class BitwiseOperators {
    
    }

    4.逻辑运算符

    package com.hgd.study2;
    
    /**
     * 逻辑运算符:&  |  ! ^  &&  ||
     * 运算符两边的表达式的值为布尔值,运算的结果也是布尔值
     * @author HuTiger
     *
     */
    public class LogicalConnective {
    public static void main(String[] args) {
        
        /*
         * 必须两者为true结果才为true  否则结果是false,是一个并且关系
         */
        System.out.println(1<2&&2>3);
        
        /*
         * || 或的关系 两者同为false 结果是false 其他都是true
         */
        
        /*
         *  & 并且的关系 和&&的区别:本身表达式的结果没有区别,区别在于运算过程
         */
        //短路现象:当表达式前者的计算结果已经决定了整个表达式结果的时候,后面的内容不再进行计算
        System.out.println(1<2&&2>3);
        System.out.println(1<2&2>3);
        
        /*
         *  |
         */
    }
    }

    5.三元运算符

    package com.hgd.study2;
    
    /**
     * 三元运算符
     * 结果=条件? 表达式1:表达式2;
     * @author HuTiger
     *
     */
    public class TernaryOperator {
    
        public static void main(String[] args) {
            
            int i=10;
            int result=i>=20?i:i+10;
            System.out.println(result);
            
            /*
             * 练习:
             * 数据库的总条数是count
             * 每页显示10条数据
             * 需要计算出总页数??
             */
            int count=121;
            result=count%10==0 ? count/10:count/10+1;
            System.out.println(result);
            
            /*
             * 练习:
             * 将一个5(score)分制分为 :
             * 5分的评价等级A 
             * 4==B 3==C 其他是D
             */
            
            int score=4;
            String lv;
            lv=score>2? score==3?"c":score==4?"b":"a" :"d";
            System.out.println(lv);
            
        }
    }
  • 相关阅读:
    举荐一个源代码站—优越源代码
    [转载]如虎添翼Sybase数据库标题年夜搜罗2
    [转载]Sybase ASA中盘问元信息的几个常用SQL函数
    [转载]有关Sybase ASE数据库的滥觞
    [转载]Sybase ASA9/ASA10的运用体例
    [转载]Sybase数据库简介(初学者必看)(5)
    [转载]如虎添翼Sybase数据库效果大大包罗5
    [转载]Sybase数据库简介(初学者必看)(3)
    [转载]Sybase数据库简介(初学者必看)(2)
    [转载]Sybase数据库简介(初学者必看)(4)
  • 原文地址:https://www.cnblogs.com/huguodong/p/5869174.html
Copyright © 2020-2023  润新知