首页 > 其他分享 >运算符

运算符

时间:2023-12-21 21:35:59浏览次数:34  
标签:10 int System 运算符 println true out

运算符

运算符和表达式

int a = 10;
int b = 20;
int c = a + b;

+:运算符,并且是算术运算符

a + b:表达式,由于+是算术运算符,所以这个表达式叫算术表达式

算术运算符

符号

符号 作用
+
-
*
/
% 取模、取余
public class ArithmeticoperatorDemo1 {
    public static void main(String[] args) {
        //+
        System.out.println(3 + 2);//5
        //-
        System.out.println(5 - 1);//4
        //*
        System.out.println(7 * 9);//63

        //如果在运算的时候有小数参与
        //结论:
        //在代码中,如果有效数参与,结果有可能不精确的。
        System.out.println(1.1 + 1.1);//2.2
        System.out.println(1.1 + 1.01);//2.1100000000000003

        //除法
        //结论:
        //1.整数参与计算,结果只能得到整数
        //2.小数参与计算,结果有可能是不精确的
        System.out.println(10 / 2);//5
        System.out.println(10 / 3);//3
        System.out.println(10.0 / 3);//3.3333333333333335

        //取模、取余。实际上也是做除法运算,只不过得到的是余数而已。
        System.out.println(10 % 2);//0
        System.out.println(10 % 3);//1
        
        //应用场景:
        //1.可以用取模判断,A是否可以被B整除
        //A % B    10 % 3
        //2.可以判断A是否为偶数
        //A % 2 如果结果为0,那么证明A是一个偶数。如果结果为1,那么证明A是一个奇数
        //3.斗地主发牌
        //三个玩家
        //把每一张牌都定义一个序号
        //拿着序号 % 3 如果结果为1,就发给第一个玩家
        //如果结果为2,那么就发给第二个玩家
        //如果结果为0,那么就发给第三个玩家

    }
}

练习--数值拆分

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

公式总结:

  • 个位:数值 % 10
  • 十位:数值 / 10 % 10
  • 百位:数值 / 100 % 10
  • 千位:数值 / 1000 % 10
  • ...
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();

        //2.获取个位,十位,百位
        //公式:
        //个位:  数字 % 10
        //十位:  数字 / 10 % 10
        //百位:  数字 / 10 / 10 % 10
        //...
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;
        System.out.println(ge);
        System.out.println(shi);
        System.out.println(bai);
    }
}

数字相加

数字相加

数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。

类型转换的分类

  1. 隐式转换(自动类型提升)

    • 取值范围的数值-->取值范围的数值

    • //范例: 
      int a = 10;
      double b = a;//b = 10.0
      

      取值范围:double>float>long>int>short>byte

    • 隐式转换的两种提升规则

      • 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算

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

        public class Test {
            public static void main(String[] args) {
                int a = 10;//取值范围小
                double b = 12.3;//取值范围大
                
                double c = a + b;//+ 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
            }
        }
        
        public class Test {
            public static void main(String[] args) {
                byte a = 10;
                byte b = 20;
                
                int c = a + b;//byte、short、char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
            }
        }
        
  2. 强制转换

    • 取值范围的数值-->取值范围的数值(如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换)

    • 格式:目标数据类型 变量名 = (目标数据类型) 被强转的数据;

      //范例: 
      double a = 12.3;
      int b = (int) a;
      
      //范例: 
      int a = 300;
      byte b = (byte) a;//会出现错误,byte的取值范围是-128~127,300超出取值范围
      
      //范例:
      public class ArithmeticoperatorDemo2 {
          public static void main(String[] args) {
              byte b1 = 10;
              byte b2 = 20;
              //现在要强转的是b1 + b2计算之后的结果。
              //(byte)b1 + b2 强转的是b1,并不是最终的结果
              byte result = (byte) b1 + b2;//错误
              byte result = (byte) (b1 + b2);//正确
              System.out.println(result);//30
          }
      }
      

字符串相加

字符串的“+”操作

  • 当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。

    会将前后的数据进行拼接,并产生一个新的字符串。

    • "123" + 123//结果是"123123"
      
  • 连续进行“+”操作时,从左到右逐个执行。

    • 1 + 99 +"世界"//结果是"100世界"
      
    //范例:
    int age = 18;
    System.out.println("刚满" + age + "岁");//"刚满18岁"
    System.out.println("刚满" + "age" + "岁");//"刚满age岁"
    
    //范例:
    System.out.println(1 + 2 + "abc" + 2 + 1);//"3abc21"
    
练习:数值拆分

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

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();

        //2.获取个位,十位,百位
        //公式:
        //个位:  数字 % 10
        //十位:  数字 / 10 % 10
        //百位:  数字 / 10 / 10 % 10
        //...
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;
        System.out.println("个位是" + ge);
        System.out.println("十位是" + shi);
        System.out.println("百位是" + bai);
    }
}

字符相加

  • 字符 + 字符字符 + 数字 时,会把字符通过ASCLL码表查询到对应的数字再进行计算。

    //范例:
    System.out.println(1 + 'a');//98
    System.out.println('a' + "abc");//"aabc"
    

自增自减运算符

基本用法

符号 作用 说明
++ 变量的值加1
-- 变量的值减1
  • 注意事项:++和--既可以放在变量的前面,也可以放在变量的后面

    int a = 10;
    a++;//(++a;)后加加(先加加),表示将变量里面得值加1
    System.out.println(a);//11
    

    单独使用(用法一):++和--无论是放在变量的前边还是后边,单独写一行结果都是一样的

    //范例:
    public class ArithmeticoperatorDemo3 {
        public static void main(String[] args) {
            //++ 和 --
            int a = 10;
            //表示把变量a里面的值+1
            a++;
            System.out.println(a);//11
            //表示把变量a里面的值+1
            ++a;
            System.out.println(a);//12
            //表示把变量a里面的值-1
            a--;
            System.out.println(a);//11
            //表示把变量a里面的值-1
            --a;
            System.out.println(a);//10
        }
    }
    

应用场景一:

一岁-->生日后-->两岁

int age = 1;
age++;
System.out.println(age);

应用场景二:

购买物品增减购买数量时

- 2 +

应用场景三:数¥号

& &
++ ++ ++

参与计算(用法二):

  1. 先用后加

    int a = 10;
    int b = a++;//a=11,b=10
    
  2. 先加后用

    int a = 10;
    int b = ++a;//a=11,b=11
    

练习

public class ArithmeticoperatorDemo4 {
    public static void main(String[] args) {
        int x = 10;
        //后++:先用后加
        int y = x++;
        //先++:先加后用
        int z = ++x;
        System.out.println("x:" + x);//12
        System.out.println("y:" + y);//10
        System.out.println("z:" + z);//12
    }
}

赋值运算符

分类

符号 作用 说明
= 赋值 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 ArithmeticoperatorDemo1 {
    public static void main(String[] args) {
        //+=
        //规则:将左边和右边进行相加,然后再把结果赋值给左边
        int a = 10;
        int b = 20;
        a += b;//等同于 a = (int) (a + b);
        System.out.println(a);
        System.out.println(b);


        //细节:
        //+=,-=,*=,/=,%= 底层都隐藏了一个强制类型转换
        short s = 1;
        s += 1;//等同于:s = (short) (s + 1);
        System.out.println(s);//2
    }
}

关系运算符

(关系运算符/比较运算符)的分类

符号 说明
== a==b,判断a和b的值是否相等,成立为true,不成立为false
!= a!=b,判断a和b的值是否不相等,成立为true,不成立为false

|a>b,判断a是否大于b,成立为true,不成立为false
=|a>=b,判断a是否大于等于b,成立为true,不成立为false
<|a<b,判断a是否小于b,成立为true,不成立为false
<=|a<=b,判断a是否小于等于b,成立为true,不成立为false
注意事项:

  1. 关系运算符的结果都是boolean类型,要么是true,要么是false。
  2. 千万不要把“==”误写成“=”。
//范例:
public class CompareoperatorDemo1 {
    public static void main(String[] args) {
        //== 判断左右两边是否相等
        int a = 10;
        int b = 10;
        int c = 20;
        System.out.println(a == b);//true
        System.out.println(a == c);//false
    }
}

练习--约会

需求:

您和您的约会对象在餐厅里面正在约会。

键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录其他)

如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。

否则输出false。

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        /* 需求:
         您和您的约会对象在餐厅里面正在约会。
         键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录其他)
         如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。
         否则输出false。*/

        //1.键盘录入两个整数表示衣服的时髦度
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入我们自己的衣服时髦度");
        int myFashion = sc.nextInt();
        System.out.println("请输入相亲对象衣服的时髦度");
        int girlFashion = sc.nextInt();

        //2.把我衣服的时髦度跟女孩的时髦度进行对比
        boolean result = myFashion > girlFashion;

        //3.打印结果
        System.out.println(result);
    }
}

逻辑运算符

  • 在数学中,一个数据x,大于5,小于15,表示成:5<x<15。
  • 在Java中,需要把上面的式子先进行拆解,在进行合并表达。
    • 拆解为:x>5x<15
    • 合并后:x>5 & x<15(&:并且)

分类

符号 作用 说明
& 逻辑(且) 并且,两边都为真,结果才是真(两边都要满足)
| 逻辑或 或者,两边都为假,结果才是假(两边满足一个)
^ 逻辑异或 相同为false,不同为true
! 逻辑非 取反
//范例"&""|"":
public class LogicoperatorDemo1 {
    public static void main(String[] args) {
        //1. & 并且
        //两边都为真,结果才是真
        System.out.println(true & true);//true
        System.out.println(false & false);//false
        System.out.println(true & false);//false
        System.out.println(false & true);//false


        //2. | 或者
        //两边都为假,结果才是假
        System.out.println(true | true);//true
        System.out.println(false | false);//false
        System.out.println(true | false);//true
        System.out.println(false | true);//true
    }
}

使用场景一

输入用户名和密码时,成功登陆的条件是:

用户名正确 并且 密码正确

使用场景二

结婚时女方要求要有

房子 或者 车子;(房子 并且 车子)

//范例"^""!":
public class LogicoperatorDemo2 {
    public static void main(String[] args) {
        // ^ 异或
        //相同为false,不同为true
        System.out.println(true ^ true);//false
        System.out.println(false ^ false);//false
        System.out.println(true ^ false);//true
        System.out.println(false ^ true);//true


        // ! 逻辑非 取反
        //提示:
        //取反的感叹号不要写多次,要么不写,要么只写一次
        System.out.println(!false);//true
        System.out.println(!true);//false
    }
}

短路逻辑运算符

符号 作用 说明
&& 短路与 结果和&相同,但是有短路效果
|| 短路或 结果和|相同,但是有短路效果
//范例:
public class LogicoperatorDemo3 {
    public static void main(String[] args) {
        //1.&&
        //运行结果跟单个&是一样的
        //表示两边都为真,结果才是真
        System.out.println(true && true);//true
        System.out.println(false && false);//false
        System.out.println(false && true);//false
        System.out.println(true && false);//false


        //2.||
        //运行结果跟单个|是一样的
        //表示两边都为假,结果才是假
        System.out.println(true || true);//true
        System.out.println(false || false);//false
        System.out.println(false || true);//true
        System.out.println(true || false);//true


        //3.短路逻辑运算符具有短路效果
        //简单理解:当左边的表达式能确定最终的结果,那么右边就不会参与运行了
        int a = 10;
        int b = 10;
        boolean result = ++a < 5 && ++b < 5;
        System.out.println(result);//false
        System.out.println(a);//11
        System.out.println(b);//10
    }
}
  • 注意事项:

    • &|,无论左边 true false,右边都要执行。

      &&||,如果左边能确定整个表达式的结果,右边不执行

      &&:左边为false,右边不管是真是假,整个表达式的结果一定是false。

      ||:左边为true,右边不管是真是假,整个表达式的结果一定是true。

      这两种情况下,右边不执行,提高了效率。

    • 最常用的逻辑运算符:&&||!

练习--数字6

需求:

数字6是一个真正伟大的数字,键盘录入两个整数。

如果其中一个为6,最终结果输出true。

如果他们的和为6的倍数。最终结果输出true。

其他情况都是false。

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        /*数字6是一个真正伟大的数字,键盘录入两个整数。
        如果其中一个为6,最终结果输出true。
        如果他们的和为6的倍数。最终结果输出true。
        其他情况都是false。*/

        //分析:
        //1.键盘录入两个整数
        // 变量a  变量b

        //2.a == 6 || b == 6 || (a + b) % 6 = 0
        //如果满足其中一个,那么就可以输出true


        //键盘录入两个整数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int number1 = sc.nextInt();
        System.out.println("请输入第二个整数");
        int number2 = sc.nextInt();

        //用短路逻辑运算符去链接三个判断
        boolean result = number1 == 6 || number2 == 6 || (number1 + number2) % 6 == 0;

        System.out.println(result);
    }
}

三元运算符

三元运算符

需求:定义一个变量记录两个整数的较大值。

int number = 拿着两个整数进行比较
System.out.println(number);

作用:可以进行判断,根据判断结果得到不同的内容

格式(三元运算符/三元表达式)

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

  • 范例:求两个数的较大值。

    int max = a > b ? a : b;//把三元运算符的结果赋值给一个变量
    System.out.println(a > b ? a : b);//把三元运算符的结果直接打印
    
//范例:
public class TernaryoperatorDemo1 {
    public static void main(String[] args) {
        //需求:使用三元运算符,获取两个数的较大值

        //分析:
        //1.定义两个变量记录两个整数
        int number1 = 10;
        int number2 = 20;

        //2.使用千元运算符获取两个整数的较大值
        //格式:关系表达式 ? 表达式1 : 表达式2;
        //整个三元运算符的结果必须要使用

        int max = number1 > number2 ? number1 : number2;
        System.out.println(max);

        System.out.println(number1 > number2 ? number1 : number2);
    }
}
  • 计算规则
    • 首先计算关系表达式的值
    • 如果值为true表达式1的值就是运算结果
    • 如果值为false表达式2的值就是运算结果

练习1--两只老虎

需求:

动物园里有两只老虎,体重分别通过键盘录入获得,

请用程序实现判断两只老虎的体重是否相同。

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        /*需求:动物园里有两只老虎,体重分别通过键盘录入获得,
        请用程序实现判断两只老虎的体重是否相同。*/

        //分析:
        //1.键盘录入两只老虎的体重
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一纸老虎的体重");
        int weight1 = sc.nextInt();
        System.out.println("请输入第二纸老虎的体重");
        int weight2 = sc.nextInt();
        //2.比较
        //相同  不同

        String result = weight1 == weight2 ? "相同" : "不同";
        System.out.println(result);
    }
}

练习2--求最高身高的和尚

需求:

一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,

请用程序实现获取这三个和尚的最高身高。

public class Test5 {
    public static void main(String[] args) {
        /*需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,
        请用程序实现获取这三个和尚的最高身高。*/


        //1.定义三个变量记录三个和尚的身高
        int height1 = 150;
        int height2 = 210;
        int height3 = 165;
        //2.拿着第一个和尚和第二个和尚进行比较
        //再拿着结果跟第三个和尚进行比较即可
        int temp = height1 > height2 ? height1 : height2;
        int max = temp > height3 ? temp : height3;

        System.out.println(max);
    }
}

运算符优先级

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

标签:10,int,System,运算符,println,true,out
From: https://www.cnblogs.com/Y423x/p/17920147.html

相关文章

  • 无涯教程-Haskell - 运算符
    在本章中,我们将了解Haskell中使用的不同运算符,在接下来的章节中,我们将学习更多有关不同运算符及其用法的信息。 +加法顾名思义,加法(+)运算符用于加法函数。main=doletvar1=2letvar2=3putStrLn"Theadditionofthetwonumbersis:"print(var1+var......
  • Day04运算符
    基本运算符//前四个,必须掌握!!!!!!!!!!!!!!!算木运算符:+,-,*,/,%,++,--赋值运算符=关系运算符:>,<,>=,<=,==,!=,instanceof运算符:&&,||,!//下面的,了解就行--------------------位运算符:&,|,^,~,>>、<<,>>>......
  • C 语言运算符详解
    C语言中的运算符运算符用于对变量和值进行操作。在下面的示例中,我们使用+运算符将两个值相加:intmyNum=100+50;虽然+运算符通常用于将两个值相加,就像上面的示例一样,它还可以用于将变量和值相加,或者将变量和另一个变量相加:intsum1=100+50;//150(100+5......
  • C 语言运算符详解
    C语言中的运算符运算符用于对变量和值进行操作。在下面的示例中,我们使用+运算符将两个值相加:intmyNum=100+50;虽然+运算符通常用于将两个值相加,就像上面的示例一样,它还可以用于将变量和值相加,或者将变量和另一个变量相加:intsum1=100+50;//150(100+......
  • JavaScript中的现代运算符:?.、?? 和 ??=
    在JavaScript中,?.、??和??=是相对较新的运算符,分别用于可选链、空值合并和空值合并赋值。这些运算符提供了更加简洁和安全的方式来处理未定义(undefined)或空(null)的值。JavaScript的发展一直在不断进步,近年来,ES6及后续版本引入了许多实用的新特性。其中,?.、??和??=这三个运算......
  • Java-特殊运算符与方法
    Java-特殊运算符与方法一、运算符移位:<<​>>​运算结果说明1<<12代表1的二进制001​左移1位,为010​=24>>21代表4的二进制100​右移2位,为001​=1或:|​二进制运算:(或=有1为1,没则为0)​1​|1​得1​​1​|0​得0​​0​|1​得1​......
  • Java-特殊运算符与方法
    Java-特殊运算符与方法一、运算符移位:<<​>>​运算结果说明1<<12代表1的二进制001​左移1位,为010​=24>>21代表4的二进制100​右移2位,为001​=1或:|​二进制运算:(或=有1为1,没则为0)​1​|1​得1​​1​|0​得0​​0​|1​得1​......
  • 迭代器和三元运算符
    迭代器和三元运算符1.迭代器1.1迭代器介绍迭代器是用来迭代取值的工具,而迭代是重复反馈过程的活动其目的通常是为了逼近所需的目标或结果,每一次对过程的重复称为一次“迭代”而每一次迭代得到的结果会作为下一次迭代的初始值,单纯的重复并不是迭代whileTrue:data=in......
  • 运算符
    【一】算数运算符(1)加法x=9y=2result=x+yprint(result)#11(2)减法x=9y=2result=x-yprint(result)#输出:7(3)乘法x=9y=2result=x*yprint(result)#输出:18(4)除法x=9y=2result=x/yprint(result)#输出:4.5(5)取整除x=9......
  • 运算符
     运算符 1,数学运算符1.“+”只有符号两边都是数字的时候才会进行加法运算只要符号任意一边是字符串类型,就会进行字符串拼接2.“-”会执行减法运算会自动把两边都转换成数字进行运算3."*"会执行乘法运算会自动把两边都转换成数字进行运算4.“/”会执行除法运......