JAVA学习笔记(10){运算符}

目录

 

字符串的"+"操作:

练习:

1.看代码读结果

2.看代码读结果

3.键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

 字符的"+"操作

练习:

1.看代码说结果

 自增自减运算符

练习:

赋值运算符

关系运算符

练习:

逻辑运算符

短路逻辑运算符

练习:

三元运算符

练习:

运算符优先级


 

字符串的"+"操作:

当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,会产生一个新的字符串。

例如:字符串“123”+123会被拼接成“123123”

连续进行“+”操作时,从左到右逐个执行

例如:1+99+“中华民族万岁”

练习:

1.看代码读结果

public class yunsuanfu
{
    public static void main(String[] args)
    {
        System.out.println(3.7+"abc");
        System.out.println("abc"+true);
        System.out.println('中'+"abc"+true);
        System.out.println(1+2+"abc"+2+1);
    }
}

第一排运行结果应为"3,7abc"

第二排运行结果应为"abctrue"

第三排运行结果应为"中abctrue"

第三排运行结果应为"3abc21"从左到右分析1+2时做数字运算,正常加减,当加到"abc"时,因为"abc"为字符串,而+遇到字符串自动变为拼接功能。

2.看代码读结果

public class yunsuanfu 
{
    public static void main(String[] args) 
    {
        int age=18;
        System.out.println("我的年龄是"+age+"岁");
        System.out.println("我的年龄是"+"age"+"岁");
    }
}

第一个输出结果应为:"我的年龄是18岁"

第二个输出结果应为:"我的年龄是age岁"

3.键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

import java.util.Scanner;
public class chaifen
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int i=sc.nextInt();
        System.out.println("你输入的数为:"+i);
        System.out.println("它的百位是:"+i/100%10);
        System.out.println("它的十位是:"+i/10%10);
        System.out.println("它的个位是:"+i%10);
    }
}

 字符的"+"操作

温馨提示:byte short char三种数据类型的数据在运算的时候,都会直接提升为int,然后再进行运算

当字符+字符,字符+数字时,会把字符通过ASCII码表查询到相应的数字再进行计算

练习:

1.看代码说结果

public class zifujia
{
    public static void main(String[] args) 
    {
        System.out.println(1+'a');
        System.out.println('a'+"abc");
    }
}

第一个输出结果应为98,1+ASCII码的a=1+97=98

第二个输出结果应为"aabc",只要有字符串+就是拼接的作用

 自增自减运算符

符号作用说明
++变量的值加1
--变量的值减1
public class zizeng
{
    public static void main(String[] args)
    {
        int a=10,b=10;
        ++a;
        b++;
        System.out.println(a);
        System.out.println(b);
    }
}

a,b输出结果都为11,由此可知,++和--无论放在变量的前边还是后边,单独写一行结果是一样的,但是如果自增或自减运算符参与计算,结果则截然不同

例如:

public class zizeng
{
    public static void main(String[] args)
    {
        int a=10;
        int b=a++;
        int c=10;
        int d=++c;
        System.out.println(b);
        System.out.println(d);
    }
}

 b的输出结果为10.而d的输出结果为11,由此可以看出,++或--的位置对计算的结果有影响,可以参考,先++/--,先++/--再用;后==/--,先用后==/--

练习:

public class zizeng
{
    public static void main(String[] args)
    {
        int x=10;
        int y=x++;
        int z=++x;
        System.out.println("x:"+x);
        System.out.println("y:"+y);
        System.out.println("z:"+z);
    }
}

x的输出结果为12;x一开始赋值为10,经过y=x++和z=x++的自增输出12

y的输出结果为10;y被x++赋值,但是因为++在后面所以x仍为10

z的输出结果为12;z被++x赋值,但由于x经历过y=x++自增为11,且z=++x,++在前,先加后算

赋值运算符

符号作用说明
=赋值int a=10,将10的值赋给变量a
+=加后赋值a+=b,将a+b的值给a
-=减后赋值

a-=b,将a-b的值给a

*=乘后赋值a*=b,将a*b的值给a
/=除后赋值a/=b,将a/b的商给a
%=取余后赋值

a%=b,将a/b的余数给a

public class fuzhiyunsuan
{
    public static void main(String[] args)
    {
        int a=10;
        int b=20;
        a+=b;//等同于a=a+b
        System.out.println(a);
        System.out.println(b);
        short s=1;
        s+=1;
        System.out.println(s);
    }
}

细节:+=,-=,/=底层都隐藏了一个强制类型转换。这里的s就是如此,当short类型的s和1相加时会自动转换成int类型,short类型的s=1+1,实际上等同于s=(short)(s+1);

关系运算符

符号说明
==a==b,判断a和b的值是否相等
!=a!=b,判断a和b的值是否不相等
>a>b,判断a是否大于b
>=a>=b,判断a是否大于等于b
<a<b,判断a是否小于b
<=a<=b,判断a是否小于等于b

注意:关系运算符的结果都是Boolean类型,要没事true要么是false。千万不要把"=="误写成"="

 

public class 比较运算符
{
    public static void main(String[] args)
    {
        int a=10;
        int b=10;
        int c=20;
        System.out.println(a==b);
        System.out.println(a==c);
    }
}

练习:

你和你的约会对象在餐厅里面约会。键盘键入两个整数,表示你和你的约会对象的时髦度。如果你的时髦程度大于你对象的时髦程度,相亲成功,输出true。否则输出false。

import java.util.Scanner;
public class 练习
{
    public static void main(String[] args)
    {
        System.out.println("请输入你的时髦度");
        Scanner sc=new Scanner(System.in);
        int a= sc.nextInt();
        System.out.println("请输入对象的时髦度");
        int b= sc.nextInt();
        if(a>b)
        {
            System.out.println("true");
        }
        else
        {
            System.out.println("false");
        }
    }
}

逻辑运算符

短路逻辑运算符

符号作用说明
&&短路与结果和&相同,但是有短路效果
||短路或结果与|相同,但是有短路效果

&&表示两边都为真,结果才是真

||表示两边都为假,结果才是假

public class 短路逻辑运算符
{
    public static void main(String[] args)
    {
        System.out.println(true&&true);//和
        System.out.println(false&&true);
        System.out.println(true&&false);
        System.out.println(false&&false);
        System.out.println(true||true);//或
        System.out.println(false||true);
        System.out.println(true||false);
        System.out.println(false||false);
        int a=10;
        int b=10;
        boolean result=++a<5&&++b<5;
        System.out.println(result);
        System.out.println(a);
        System.out.println(b);
    }
}

在这里中带你看下面,我们使用到了短路逻辑运算符两个&&,此时布尔类型的result先进行++a的操作,然后执行判断语句,判断a是否<5,很显然不小于,所以此时短路逻辑运算符起作用,语句结果已是false,语句不再继续执行,所以打印出的result为flase,a为11,b为10。

 注意:&|,无论左边true或false,右边都要执行;&&||,如果左边能确定整个表达式的结果,右边不执行;

练习:

数字6是一个真正伟大的数字,键盘录入两个两个整数,如果其中一个为6,最终结果输出为true。如果他们的和为6的倍数。最终结果输出true。其他情况都是false。

import java.util.Scanner;
public class 短路逻辑运算符
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个整数");
        int num1=sc.nextInt();
        System.out.println("请再此输入一个整数");
        int num2= sc.nextInt();
        boolean Result=(num1==6||num2==6||(num1+num2)%6==0);
        System.out.println(Result);
    }
}

三元运算符

格式:关系表达式?表达式1:表达式2;

注意:三元运算符的结果必须被使用

public class 三元运算符
{
    public static void main(String[] args) 
    {
        int num1 = 10;
        int num2 = 20;
        int max = num1 > num2 ? num1 : num2;//结果必须要被使用
        System.out.println(max);
        System.out.println(num1 > num2 ? num1 : num2);
    }
}

练习:

动物园里有两只老虎,体重分别通过键盘录入获得,请使用程序实现判断两只老虎的体重是否相等。

import java.util.Scanner;
public class 三元运算符
{
        public static void main(String[] args)
        Scanner Sc=new Scanner(System.in);
        System.out.println("请输入第一只老虎的体重");
        int Weight1=Sc.nextInt();
        System.out.println("请输入第二只老虎的体重");
        int Weight2=Sc.nextInt();
        String Pro=Weight1==Weight2?"相同":"不同";
        System.out.println(Pro);
}

一座寺庙住着三个和尚,已知他们的身高分别为150cm,210cm,165cm,求使用程序实现获取这三个和尚的最高身高。

public class 三元运算符 
{
    public static void main(String[] args)
    {
        int HeShang1 = 150;
        int HeShang2 = 210;
        int HeShang3 = 165;
        int max1 = HeShang1 > HeShang2 ? HeShang1 : HeShang2;
        int max2 = max1 > HeShang3 ? max1 : HeShang3;
        System.out.println(max2);
    }
}

运算符优先级

优先级运算符
1.、()、{}
2!、~、++、--
3*、/、%
4+、-、
5<<、>>、>>>
6<、<=、>、>=、instanceof
7==、!=
8&
9^
10|
11&&
12||
13?:
14

=、+=、-=、*=、/=、%=、&=

急急急

你先别急,记住一个就行,小括号优先所有

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是世界大好人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值