欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java基础

程序员文章站 2022-06-16 21:17:38
...

j2se运算符问题

本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
运算符的分类

- a.从功能分

  • 1.算数运算符
  • 2.赋值运算符
  • 3.关系运算符
  • 4.逻辑运算符
  • 5.位运算符
  • 6.移位运算符

-b.按运算符操作的元素个数分

-1.一元运算符
-2.二元运算符
-3.三元运算符
// 运算符:
// * a:从功能分类
// * 1.算数运算符 + - * / % ++ –
int a=3,b=4;
System.out.println(a+b);
System.out.println(-2/-1);//整数相除得到的一定是整数 与普通的运算规则一致
System.out.println(3%-2);// 1 余数的符号与被余数一致

        //++(自增)  --(自减)
        //研究++:默认一次增加一
        /*
         * 当++在变量后时,变量会使用当前的值参与运算,之后在自身加一
         * 当++在变量前时,变量会首先自身加一,之后会用当前的值在参与运算
         */
        int q=2,w=1,y=0,x;
        x=q++;
        y=++w;
        System.out.println(x+"  "+y+"  "+q+"   "+w);

// * 2.赋值运算符 = += -= *= /= %=
int z=3,z1=2;//一个变量在使用之前必须先赋值
z1+=z;//z1=z1+z;
System.out.println(z1);

        //实例:算 n,u,m,o的值
        int n=2,m=3,u=1,o=0;
        o=n++ - --m + (u++ - n--);
        System.out.println(n+"  "+u+"  "+m+"   "+o);//2  2  2   -2
        /*
         * 实例的分析:先考虑优先级,优先级相同在考虑结合性。先考虑优先级低的,使用排除法,将优先级搞得找出来,在一步步运算。
         * 1.先考虑=,使用排除法,根据右结合性,先算=的右边
         * 2.再考虑()外的-,+,根据左结合性
         * 3.算n++      n=3    n++=2
         * 4.算--m      m=2    --m=2
         * 5.算()              (1-3)=-2  u++=1  u=2   n=2
         * 6.算2中的- +     2-2+1-3=-2
         * 7.算=  将值赋给o=2
         */

// * 3.关系运算符 > < <= >= != ==
//注意点:返回值只有两个 true/false
System.out.println(2>3);//false
// * 4.逻辑运算符 &&(与) ||(或)
//特点:运算的结果是true/false 参与运算的元素也必须是true/false
/*
* &&(与):全真则真,一假则假
* ||(或):全假则假,一真则真
* !(非):假则真,真则假
*
* 短路与(&&):当有多个&&连接的时候,从左往右运算,只要得到一个false,就会停止运算,最终结果为false
* 短路或:当有多个||连接的时候,从左往右运算,只要得到一个true,就会停止运算,整个结果就是true。
*/
System.out.println(true&&false);//false
System.out.println(2<3 || false);//true
System.out.println(!true);//false

        //推出的r的值是2,说明出现false之后,停止了运算。这个思路只适用于连续的&& 或者 连续的||,一旦出现其他运算符,就要单独进行运算。
        int r=2;
        boolean istrue=2>1&&3<4&& 4>5&&r++>9;
        System.out.println(istrue+"  r:"+r);//false  r:2

// * 5.位运算符:直接操作的是位 &(按位与):全一则一,有0则0 |(按位或):全0则0吗,有1则1
//^(按位异或):参与运算的当前位相同则是0,不同则1 ~(按位取反):1就取0,0就取1
//问题:有了普通的运算符,为什么还要有位运算符?
//答:;速度快效率高,因为直接操作的是二进制。
//实例:13和7
/*
* 1101 13
* 0111 7
*
* 0101 &
* 1111 |
* 1010 ^
*/
//通过^实现两个数的交换,不在需要借助第三个变量
int t=4,h=5;
t=t^h;
h=t^h;
t=t^h;
System.out.println(t+” “+h);
/*
* 分析:
* 0100 4
* 0101 5
*
* 0001 t
* 0101 5
*
* 0100 h=4
* 0001 t
*
* 0101 t=5
*/
// * 6.位移运算符:直接操作的位 >>1 右移一位:表示除以二 <<1 左移一位:表示乘以二 >>>1无符号右移 <<<1无符号左移
//只能用于整数的运算。
System.out.println(5>>1);//2

        /*
         * 表达式:由变量和常量以及运算符组成的式子
         * 语句:表达式+;   注意点:如果只有一个; 也叫语句---空语句
         */

// * b:按运算符操作的元素个数
// * 一元(元素)运算符:++ – ~ ! -(负号) +(正号)
// * 二元运算符:+ - * /
// * 三元运算符:三目运算符:?:—表达式一<表达式二?变量一:变量二
//解释:先让表达式一与表达式二比较,如果是true,整个式子的结果就是变量一的值。如果是false就取变量二的值。
int a2=3,a3=5;
System.out.println(a2

相关标签: jav