每日热文:java运算符

2023-02-05 12:08:49 来源:51CTO博客

1.概述

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

1) 算术运算符


(资料图片仅供参考)

2) 赋值运算符

3) 关系运算符 [比较运算符]

4) 逻辑运算符

5) 位运算符 [需要二进制基础]

6) 三元运算符

2.算数运算符

算数运算符是对数值类型的变量进行运算的,在java程序中使用的非常多

2.1 除号 /

//算数运算符 /号public class Test6{  public static void main(String[] args)  {    System.out.println(10/4);//2,从数学来看是2.5,但是从java来看就是2    System.out.println(10.0/4);    double d1 = 10/4;    System.out.println(d1);//2.0  }}

2.2 取模% 63

2.2.1在java中%的本质,看一个公式a%b=a-a/b*b

//取模%//在java中%的本质,看一个公式a%b=a-a/b*bpublic class Test6{  public static void main(String[] args)  {    System.out.println(10%3);//1    System.out.println(-10%3);//-1, -10-(-10)/3*3=-10+9=-1    System.out.println(10%-3);//1, 10-10/(-3)*(-3)=10-9=1    System.out.println(-10%-3);//-1, (-10)-(-10)/(-3)*(-3)=-10+9=-1    }}

2.3 运算符++

--与++规则一致

前置++,先++后使用

后置++,先使用后++

//运算符++//前置++,先++后使用//后置++,先使用后++public class Test6{  public static void main(String[] args)  {    int i = 10;    i++;//11    ++i;//12    System.out.println("i="+i);//12    //前置++    int j = 8;    int k = ++j;    System.out.println("j="+j+" k="+k);// 9 9    //后置++    int a = 8;    int b = a++;    System.out.println("a="+a+" b="+b);//9 8    }}

3.面试题练习

例1

注意:i=i++;//后置++三步走:(1) temp=i;(2) i=i+1;(3)i=temp;

public class Test6{  public static void main(String[] args)  {    int i=1;    i=i++;//三步走:(1) temp=i;(2) i=i+1;(3)i=temp;    System.out.println(i);//1  }}

例2

i=++i;//前置++三步走:(1)i=i+1;(2)temp=i;(3)i=temp;注意此式三步走与上式顺序不同

//例2public class Test6{  public static void main(String[] args)  {    int i=1;    i=++i;//三步走:(1)i=i+1;(2)temp=i;(3)i=temp;注意此式三步走与上式顺序不同    System.out.println(i);//2  }}

测试输出

//测试输出public class Test6{  public static void main(String[] args)  {    int a1=10;    int a2=20;    int a=a1++;    System.out.println("a="+a);//10    System.out.println("a2="+a2);//20    a=--a2;    System.out.println("a="+a);//19    System.out.println("a2="+a2);//19  }}

4.练习 66

练习1

2.思路分析

(1) 使用 int 变量 days 保存 天数

(2) 一个星期是 7 天 星期数 weeks: days / 7 零 xx 天 leftDays days % 7

(3) 输出

//课堂练习1//假如还有 59 天放假,问:合 xx 个星期零 xx 天public class Test6{  public static void main(String[] args)  {    int days=59;    int weeks = days/7;//多少个星期    int leftdays = days%7;//零多少天    System.out.println(weeks+"个星期零"+leftdays+"天");//8个星期零3天  }}

练习2

课堂练习2

定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。 [234.5]

2 思路分析

(1) 先定义一个 double huaShi 变量保存 华氏温度

(2) 根据给出的公式,进行计算即可 5/9*(华氏温度-100)

考虑数学公式和 java 语言的特性

(3) 将得到的结果保存到 double sheShi

3 走代码

//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。 [234.5]public class Test6{  public static void main(String[] args)  {    double huashi = 234.5;    double sheshi = 5.0/9*(huashi-100);//5/9*(华氏温度-100) 这里的5/9计算机直接认为的0了所以要用5.0/9    System.out.println("华氏温度"+huashi+"对应的摄氏温度是"+sheshi);  }}

5.关系运算符

1) 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false

2) 关系表达式 经常用在 if 结构的条件中或循环结构的条件中

5.1 关系运算符概图

5.2 例1

//关系运算符public class Test7{  public static void main(String[] args)  {    int a = 9;//提示: 工作开发中,不要将变量写的这么简单例如 a, b    int b = 8;    System.out.println(a>b);//T    System.out.println(a>=b);//T    System.out.println(a<=b);//F    System.out.println(ab;    System.out.println("flag="+flag);//true  }}

关系运算符注意细节

2) 关系运算符组成的表达式,我们称为关系表达式。 a > b

3) 比较运算符"=="不能误写成"="

6. 逻辑运算符

用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值

6.1 说明逻辑运算规则:

1) a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false

2) a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false

3) a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

4) a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

5) !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true

6) a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

6.2 概图

7.&&(短路与)和&(逻辑与)的使用 71

7.1 规则

名称 语法 特点

短路与&& 条件 1&&条件 2 两个条件都为 true,结果为 true,否则 false

逻辑与& 条件 1&条件 2 两个条件都为 true,结果为 true,否则 false

7.2 &&(短路与)和&(逻辑与)的区别

1) &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高

2) & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低

//&&(短路与)和&(逻辑与)的使用public class Test7{  public static void main(String[] args)  {    //&&(短路与)的使用    int age = 50;    if(age>20 && age<90)    {      System.out.println("ok100");    }    //&(逻辑与)的使用    if(age>20 & age<90)    {      System.out.println("ok200");    }    //区别    //1) &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高     //2) & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低    int a = 4; int b = 9;   //if(a < 1 && ++b < 50)    //  {         //System.out.println("ok300");       //}      //System.out.println("a=" + a + " b=" + b);// 4 9            if(a < 1 & ++b < 50)      {         System.out.println("ok300");       }      System.out.println("a=" + a + " b=" + b);// 4 10  }}

8.||(短路或)和|(逻辑或)的使用 72

8.1规则

名称 语法 特点

短路或|| 条件 1||条件 2 两个条件中只要有一个成立,结果为 true,否则为 false

|逻辑或 条件 1|条件 2 只要有一个条件成立,结果为 true,否则为 false

8.2||(短路或)和|(逻辑或)区别

(1)||短路或:如果第一个条件为 true, 则第二个条件不会判断,最终结果为 true,效率高

(2)| 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低

public class Test7{  public static void main(String[] args)  {    //||(短路或)的使用    int age = 50;    if(age>20 || age<30)    {      System.out.println("ok100");    }    //|(逻辑或)的使用    if(age>20 | age<30)    {      System.out.println("ok200");    }    //区别    //(1)||短路或:如果第一个条件为 true, 则第二个条件不会判断,最终结果为 true,效率高         //(2)| 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低      int a = 4; int b = 9;     // if(a > 1 || ++b >4 )//短路或   //    {    //      System.out.println("ok300");    //    }   //    System.out.println("a=" + a + " b=" + b);// 4 9      if(a > 1 | ++b > 4)//逻辑或      {         System.out.println("ok300");       }      System.out.println("a=" + a + " b=" + b);// 4 10  }}

9.取反!和^异或 73

9.1 规则

!取反,真变假,假变真

异或,相同为假,不同为真

9.2 例

//取反!和^异或public class Test7{  public static void main(String[] args)  {    //!取反,真变假,假变真    System.out.println(60>20);//T    System.out.println(!(60>20));//F    //异或,相同为假,不同为真    boolean b1 = (10>1)^(3<5);    System.out.println("b1="+b1);//F    boolean b2 = (10>1)^(3>5);    System.out.println("b2="+b2);//T  }}

10.逻辑运算符练习 74

10.1 例1

public class Test7{  public static void main(String[] args)  {    // int x = 5;    // int y = 5;    // if(x++==6 & ++y==6)    // {    //  x=11;    // }    // System.out.println("x="+x+"y="+y);//6 6        int x = 5;    int y = 5;    if(x++==6 && ++y==6)    {      x=11;    }    System.out.println("x="+x+"y="+y);//6 5  }}

10.2 例2

public class Test7{  public static void main(String[] args)  {    int x = 5;    int y = 5;    if(x++==5 | ++y==5)    {      x=11;    }    System.out.println("x="+x+"y="+y);//11 6         // int x = 5;    // int y = 5;    // if(x++==5 || ++y==5)    // {    //  x=11;    // }    // System.out.println("x="+x+"y="+y);//11 5  }}

10.3 例3

public class Test7{  public static void main(String[] args)  {    boolean x = true;    boolean y = false;    short z=46;    if((z++==46)&&(y=true))      z++;    if((x=false)||(++z==49))      z++;    System.out.println(z);//50  }}

标签: 华氏温度 关系运算符 摄氏温度

上一篇:
下一篇: