java语言用文字描述如下运算符的作用

一、当前实操名称

文字描述如下运算符的作用以及附加上测试代码。

    1.1、算术运算符(+-*/%,自增自减)

    1.2、赋值扩展运算符

    1.3、关系运算符(<,>,<=,>=,!=,==)

    1.4、逻辑运算符(&&,||,!)

    1.5、位运算符(&,|,^)

    1.6、条件运算符

    1.7、字符串连接符

二、心得与主要bug反馈

2.1、对变量有了详细的了解;

2.2、深刻的认识了几种运算情况;

2.3、对运算符有了熟练的应用;

2.4、主要bug及异常在代码中具体介绍;

三、项目

3.1、作者:胡超凡;

3.2、用时:2h;

3.3、项目环境:

    a、JDK版本:1.8.0_181;

    b、IDE版本:eclipse Oxygen.3a Release (4.7.3a)

    c、系统:win10

    d、项目所用知识点:主要是一个类的main方法中进行相关测试;

3.4、项目

    3.4.1、文字描述运算符的作用

        3.4.1.1、算术运算符(+-*/%,自增自减)

    +-*/%:操作数相加,相减,相乘,相除,相除取余数;

    ++、--:操作数,自己加1,自己减1;

        3.4.1.2、赋值扩展运算符

java语言用文字描述如下运算符的作用

        3.4.1.3、关系运算符(<,>,<=,>=,!=,==)

java语言用文字描述如下运算符的作用

关系运算符用来进行比较运算,结果是布尔值:true/false;

        3.4.1.4、逻辑运算符(&&,||,!)

java语言用文字描述如下运算符的作用
3.4.1.5、位运算符(&,|,^)
java语言用文字描述如下运算符的作用
3.4.1.6、条件运算符

    语法格式:x?y:z;

    其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

        3.4.1.7、字符串连接符

“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

3.4.2、项目代码

3.4.2.1-3.4.2.2、算术运算符(+-*/%,自增自减)   赋值扩展运算符

/**

  • 测试算术运算符、赋值和赋值扩展运算符
  • @author huchaofan

*/
public class TestOperator01 {
public static void main(String[] args) {
byte a=1;//特例,int直接付给byte;
int b=2;
long b2=3;
//byte c=a+b;//Type mismatch: cannot convert from int to byte
//int c2=b2+b;//Type mismatch: cannot convert from long to int

    //float f1=3.14;//默认double,Type mismatch: cannot convert from double to float
    float f1=3.14F;
     
    double d=b+b2;//测试加法;
    float d1=b-b2;//测试减法;
    long d2=b*b2;//测试乘法;
    int d3=a/b;//测试除法;1/2,为0.5,int类型去掉小数,变为0;
    System.out.println("##########算数运算符测试###########");
    System.out.println("加法测试:b+b2="+d);
    System.out.println("减法测试:b-b2="+d1);
    System.out.println("乘法测试:b*b2="+d2);
    System.out.println("除法测试:a/b="+d3);
     
    //float e=f1+6.2;//默认double,Type mismatch: cannot convert from double to float
    double g=f1+6.2;//如果两个操作数有一个为double,则结果为double
    float e=f1+6.2F;//只有两个操作数都是float,则结果才为float
    System.out.println("浮点运算测试:f1+6.2F="+e);
     
    System.out.println("###############取模测试####################");
    System.out.println(-9%5);//-4,取模符号与左边操作数一样;
    System.out.println(9%-5);//4
     
    //测试自增和自减
    System.out.println("############自增和自减测试###########");
    int m=3;
    int n=m+++3;//先算n=3+3=6;再m++,即m=4
    System.out.println("m="+m+"\tn="+n);
    m=3;
    n=++m+3;//先算++m,m=4,再n=4+3=7
    System.out.println("m="+m+"\tn="+n);
     
    //测试赋值和赋值扩展运算符
    System.out.println("##########赋值和赋值扩展运算符测试###########");
    int x=3;//赋值
    int y=4;
    x+=y;//相当于x=x+y
    System.out.println("+=测试:"+"x="+x+"\ty="+y);
    x=3;
    x-=y;//相当于x=x-y
    System.out.println("-=测试:"+"x="+x+"\ty="+y);
    x=3;
    x*=y+3;//相当于x=x*(y+3)
    System.out.println("*=测试:"+"x="+x+"\ty="+y);
    x=3;
    x/=y-3;//相当于x=x/(y-3)
    System.out.println("/=测试:"+"x="+x+"\ty="+y);
    x=3;
    x%=y-2;//相当于x=x%(y-2)
    System.out.println("%=测试:"+"x="+x+"\ty="+y);
     
}

}
java语言用文字描述如下运算符的作用
3.4.2.3、关系运算符(<,>,<=,>=,!=,==)

/**

  • 测试关系运算符
  • @author huchaofan

*/
public class TestOperator02 {
public static void main(String[] args) {
int a=3;
System.out.println("############测试关系运算符############");
System.out.println(a3);//测试
System.out.println(a!=3);//测试!=
System.out.println(a<5);//测试<
System.out.println(a>5);//测试>

    System.out.println("#####################");
    char b='a';
    char b2='c';
    System.out.println(b);//a字符
    System.out.println((int)b);//97,强制转为int类型
    System.out.println(0+b);//2.没有long时,结果为int。即使操作数全为short,byte,char,int,结果也是int
    System.out.println(0+b2);//99
    System.out.println(b<b2);//true
    System.out.println(b+b2);//char+char类型,自动转为int;
     
}

}
java语言用文字描述如下运算符的作用
3.4.2.4、逻辑运算符(&&,||,!)

/**

  • 测试逻辑运算符
  • @author huchaofan

*/
public class TestOperator03 {
public static void main(String[] args) {
boolean b1=true;
boolean b2=false;
System.out.println(b1&b2);//测试与
System.out.println(b1|b2);//测试或
System.out.println(b1^b2);//测试异或
System.out.println(!b2);//测试非

    //短路
    System.out.println("###########测试短路###########");
    //int c=3/0;
    /*异常
     * Exception in thread "main" java.lang.ArithmeticException: / by zero
     * at TestOperator03.main(TestOperator03.java:18)
     * 线程“main”java.lang.ArithmeticException:异常,/ by zero
     */
     
    boolean b3=1>2&&2<(3/0);//短路与,第一个操作数的值为false,则不需要再计算后面的操作数;
    System.out.println(b3);
    boolean b4=1<2||2<(3/0);//短路或,第一个操作数的值为true,则不需要再计算后面的操作数;
    System.out.println(b4);
}

}
java语言用文字描述如下运算符的作用

3.4.2.5、位运算符(&,|,^)

/**

  • 位运算符
  • @author huchaofan

*/
public class TestOperator04 {
public static void main(String[] args) {
int a=3;
int b=4;
System.out.println(a&b);//测试按位与,3:0011;4:0100,按位与后为:0000,即为0;
System.out.println(a|b);//测试按位或,3:0011;4:0100,按位或后为:0111,即为7;
System.out.println(a^b);//测试按位异或,3:0011;4:0100,按位异或后为:0111,即为7;
System.out.println(~a);//测试按位非,3:0011,按位非后为:1100,即为12;
/*异常
* System.out.println(a~b);
* Exception in thread “main” java.lang.Error: Unresolved compilation problem:
* Syntax error on token “a”, AssignmentOperator expected after this token
* 线程“主”JavaLang.Error中的异常:未解决的编译问题:
*/

    //移位
    System.out.println("##############测试移位#############");
    int c=3<<2;
    System.out.println("c="+c);//3*2*2=12
    System.out.println(12>>2);//12/2/2=3
    System.out.println(12>>3);//1100,右移3位,变为0001,即为1;
     
    int d=28>>3;
    System.out.println("d="+d);//28为:0001 1100,右移3位,变成0000 0011,即为3;
     
    int e=-28>>3;
    System.out.println("e="+e);
    /*
     * 计算机中,数值一律用补码表示和存储的,正数的补码与原码相同,负数的补码为“其反码+1”
     * 反码,顾名思义就是取反,对于正数来说,反码与原码相同;对于负数来说,反码为原码的各位取反(符号位除外)
     * 向右移动三位后:移动的是补码
     */
}

}
java语言用文字描述如下运算符的作用
3.4.2.6、条件运算符

/**

  • 测试条件运算符(三元运算符)
  • @author huchaofan

*/
public class TestOperator06 {
public static void main(String[] args) {
System.out.println("###########测试条件运算符############");
int score = 80;
int x=-100;
String type = score<60?“不及格”:“及格”;
System.out.println(type);

    if(score<60) {
        System.out.println("不及格");
    }else {
        System.out.println("及格");
    }
     
    System.out.println(x>0?1:(x==0?0:-1));//嵌套
     
}

}
java语言用文字描述如下运算符的作用

3.4.2.7、字符串连接符

/**

  • 测试字符串连接符
  • @author huchaofan

*/
public class TestOperator05 {
public static void main(String[] args) {
System.out.println("##########测试字符串连接符###########");
String a=“3”;
int b=4;
int c=5;

    System.out.println(a+b);//34
    System.out.println(b+c);//9,+两侧为数字,为加法运算
    System.out.println(a+b+c);//345,从左向右运算;
    System.out.println(b+c+a);//93
    System.out.println(b+c+a+b+c);//9345
     
    System.out.println("#####################");
    char d='a';
    System.out.println(d);
    System.out.println(d+4);//97+4=101,char+int=int;
}

}
java语言用文字描述如下运算符的作用