首页 > 编程语言 >java运算符

java运算符

时间:2023-03-17 23:33:45浏览次数:38  
标签:操作数 java int System 运算符 println out

一 表达式

  • 表达式由运算符和操作数组成

  • 如:5 num1, num1+num2, sum=num1+num2

二 运算符

1. 算术运算符

  • 算术运算符主要用于进行基本的算术运算, 如加法,减法,乘法,和除法等

算术运算符 名称 举例
+ 加法 1+2=3
- 减法 2-1=1
* 乘法 1*2=2
/ 除法 2/1=2
% 求余数 13%3=1
++ 自增 int n=2;n++
-- 自减 int n=2;--n
package com.imooc.operator;
​
public class MathDemo {
​
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num1 = 10, num2 = 5;
        int result; // 用于存放结果
        // 加法
        result = num1 + num2;
        System.out.println(num1 + "+" + num2 + "=" + result);
        // 字符串连接
        System.out.println("" + num1 + num2); // 结果是105
        // 减法
        result = num1 - num2;
        System.out.println(num1 + "-" + num2 + "=" + result);
        // 乘法
        result = num1 * num2;
        System.out.println(num1 + "*" + num2 + "=" + result);
        // 除法
        result = num1 / num2;
        System.out.println(num1 + "/" + num2 + "=" + result);
        // 余数
        result = num1 % num2;
        System.out.println(num1 + "%" + num2 + "=" + result);
        System.out.println("13.55/5=" + 13.55 / 5); // 结果是2.71
    }
​
}

 

  • 自增自减运算符

package com.imooc.operator;
​
public class MathDemo1 {
​
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // x++ 先运算,再自增
        int x = 4;
        int y = (x++) + 5;
        System.out.println("x=" + x + ",y=" + y); // 5 9
​
        // ++x 先自增,再运算
        int x1 = 4;
        int y1 = (++x1) + 5;
        System.out.println("x1=" + x1 + ",y1=" + y1); // 5 10
​
        // x-- 先运算,再自减
        int x2 = 4;
        int y2 = (x2--) + 5;
        System.out.println("x2=" + x2 + ",y2=" + y2); // 3 9
​
        // --x 先自减, 再运算
        int x3 = 4;
        int y3 = (--x3) + 5;
        System.out.println("x3=" + x3 + ",y3=" + y3); // 3 8
​
    }
​
}

2.赋值运算符

  • 格式: 变量=表达式;

  • 例:int = 3; // 将3赋值给变量n

  • 注意: 赋值运算符是从右往左运算!

  • 复合赋值运算符

运算符 表达式 计算 结果(x=15)
+= x+=5 x=x+5 20
-= x-=5 x=x-5 10
*= x*=5 x=x*5 75
/= x/=5 x=x/5 4
%= x%=5 x=x%5 0

3.关系运算符

  • 比较运算符用于判断两个数据的大小, 如大于

  • 比较的结果是一个布尔值

运算符 名称 表达式 结果
> 大于 2>1 true
< 小于 2<1 false
>= 大于等于 2>=1 true
<= 小于等于 2<=1 false
== 等于 2==1 false
!= 不等于 2!=1 true
  • 例: 'A' > 'B' 结果是false, 比较的是两个字符的ascll值

  • 5!=6 结果是true, 比较两个数值是否相等

  • true==false 结果位false, 两个布尔值不相等

  • float f=5.0f; long l=5; f==l; 结果是true , 浮点数与整数进行比较, 只要值相等就返回true

4.条件结构

  • 简单if语句的格式:

// 简单的if条件结构
if(条件){
    <语句块>
}
// 简单的例子
package com.imooc.operator;
​
public class ConditionDemo {
​
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 例:商场打折,如果两件商品的价格大于100则减20,并把原价和折后价格分别输出。
        // 定义两个变量,分别存放两件商品的价格
        double price1, price2;
        price1 = 80;
        price2 = 50;
        // 计算两件商品的总价
        double result = price1 + price2;
        // 进行判断,输出原件
        System.out.println("原件为: " + result);
        if (result > 100) {
            result -= 20;
        }
        System.out.println("打折后的价格: " + result);
    }
​
}
  • if-else语句的形式

if(条件){
    <语句块>
}else{
    <语句块>
}
// 判断一个整数是奇数还是偶数
package com.imooc.operator;
​
import java.util.Scanner;
​
public class ConditionDemo2 {
​
    public static void main(String[] args) {
        // 例: 判断一个整数是奇数还是偶数, 并将结果输出
        // 定义一个变量存放数据
        // 从键盘接收数据
        System.out.println("请输入一个整数: ");
        Scanner sc = new Scanner(System.in); // 键盘输入
        int num = sc.nextInt(); // 定义变量接收
        if (num % 2 == 0) {
            System.out.println(num + "这个是一个偶数");
        } else {
            System.out.println(num + "这是一个奇数");
        }
    }
​
}

5.逻辑运算符

名称 运算符 表达式
&&或& expression1&&expression2
||或| expression1||expression2
! !expression
// 小例子
package com.imooc.operator;
​
import java.util.Scanner;
​
public class TestDemo {
​
    public static void main(String[] args) {
        // 问题: 升学考试,java,python,c语言三门总成绩大于等于230,
        // 并且java成绩大于等于60, 才能升学
        // 三门总成绩大于等于230, 表示为sum>=230
        // java成绩大于等于60, 表示为ja>=60
        System.out.println("请输入java成绩: ");
        System.out.println("请输入python成绩: ");
        System.out.println("请输入c语言成绩: ");
        Scanner sc = new Scanner(System.in);
        double ja = sc.nextDouble();
        double py = sc.nextDouble();
        double c = sc.nextDouble(); // 接收键盘输入
        double sum = ja + py + c; // 成绩总和
        if ((sum >= 230) & (ja >= 60)) {
            System.out.println("升学!!!");
        } else {
            System.out.println("留级!!!");
        }
    }
​
}
  • & 逻辑'与'运算符(两边必须都为true, 结果才是true)

int n = 3;
boolean b = (3>7)&((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=false, n=4 n这里是先运算,再自增
  • && 运算符(短路运算符)

int n = 3;
boolean b = (3>7)&&((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=false, n=3 
// && 运算符又叫短路运算符, 如果第一个表达式的值就能决定表达式最后的结果,
// 运算符右边的表达式就不在计算了
  • & 和 && 的区别
    • 在 Java 中,& 和 && 都是逻辑运算符,但是它们之间有一些区别。

      & 是按位与运算符,它对两个操作数的每一位执行逻辑 AND 操作。例如,假设 a = 6 (二进制表示为 0110) 和 b = 3 (二进制表示为 0011),那么 a & b 的结果为 2 (二进制表示为 0010)。此外,如果使用 & 运算符,无论第一个操作数的值是什么,都会对第二个操作数进行求值。

      && 是逻辑与运算符,它只在第一个操作数为真时才对第二个操作数进行求值。例如,如果 a > 5 && b < 10,只有在 a 大于 5 时才会对 b 进行求值。这个特性被称为“短路求值”,可以提高程序的效率和性能。

      因此,可以总结出以下区别:

      1. & 是按位与运算符,&& 是逻辑与运算符。

      2. & 对两个操作数的每一位执行逻辑 AND 操作,而 && 只在第一个操作数为真时才对第二个操作数进行求值。

      3. 使用 & 运算符,无论第一个操作数的值是什么,都会对第二个操作数进行求值,而使用 && 运算符可以避免不必要的求值,提高程序的效率和性能。

  • | 逻辑‘或' 运算符(有一个结果为真就, 结果就是true)

int n = 3;
boolean b = (3<7)|((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=true, n=4 n这里是先运算,再自增
  • || 逻辑运算符(短路运算符)

int n = 3;
boolean b = (3<7)||((n++)<2); // 问 b=?, n=?
System.out.println("b="+b+",n="+n);
// b=true, n=4 n这里是先运算,再自增
​
// || 运算符又叫短路运算符, 如果第一个表达式的值为真,
// 运算符右边的表达式就不在计算了, 直接是true
  • | 和 || 的区别

    • 在Java中,|和||都是逻辑运算符,但是它们有不同的行为。

      |是按位或运算符,用于对两个操作数的每个位执行逻辑或运算。即使左侧操作数的结果为true,右侧操作数也会被计算。

      例如,如果a = 5(二进制表示为0101)和b = 3(二进制表示为0011),则a | b将得到7(二进制表示为0111)。

      ||是逻辑或运算符,用于将两个布尔表达式进行逻辑或运算。如果左侧操作数的结果为true,右侧操作数将不会被计算。这是一种短路逻辑运算符。

      例如,如果a = 5和b = 3,则(a < b) || (a == 5)将返回true,因为第二个操作数的结果为true,不需要计算第一个操作数。

      因此,|和||在行为上有所不同。如果你想对两个数进行按位或运算,应该使用|;

      如果你想对两个布尔表达式进行逻辑或运算,并且只有在左侧操作数的结果为false时才需要计算右侧操作数,应该使用||。

  • 逻辑 '非' 运算符

  • ! 就是取反

package com.imooc.operator;
​
import java.util.Scanner;
​
public class LogicDemo {
​
    public static void main(String[] args) {
        // 键盘输入
        System.out.println("请输入一个整数: ");
        Scanner scr = new Scanner(System.in);
        int num = scr.nextInt();
        if (!(num % 3 == 0)) {
            System.out.println(num + "不能被3整除");
        } else {
            System.out.println(num + "能被3整除");
        }
    }
​
}

三 三目运算符

  • 语法:

  • 布尔表达式? 表达式1:表达式2

  • 当布尔表达式的值为true, 则返回表达式1的值, 否则返回表达式2的值

max=a>b?a:b; // 
System.out.println("最大值是: "+max); // 返回a的值
boolean b1=a>b?(3<6|3<1):(true==false);
System.out.println("b1="+b1); // 结果:b1=true

四 运算符的优先级

  • 优先级由上到下

运算符 描述
() 括号
!,++,-- 逻辑非, 自增,自减
*,/,% 乘法,除法,取余数
+,- 加法,减法
<,<=,>,>= 小于,小于等于,大于,大于等于
==,!= 等于,不等于
&& 逻辑与
|| 逻辑或
=,+=,*=,/=,%=,-= 赋值运算符,复合赋值运算符
  • 总和案例

package com.imooc.operator;
​
import java.util.Scanner;
​
public class LeapYearDemo {
​
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 闰年的判断规则: 能被4整除但不能被100整除, 或者能被400整除
​
        System.out.println("请输入年份: ");
        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt(); // 接收键盘输入
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
            System.out.println(year + "年是闰年");
            // 能被4整除但不能被100整除, 或者能被400整除 就是闰年
        } else {
            System.out.println(year + "年不是闰年");
        }
    }
​
}

标签:操作数,java,int,System,运算符,println,out
From: https://www.cnblogs.com/jupeng/p/17228632.html

相关文章

  • Java图形界面设计-切换按钮复选按钮及单选按钮
    Java程序设计语言(一)示例程序P164程序8.5与书上程序不完全一样,匿名类使用lambda使用jdk1.8.0_311packagetech.bugstar.practice.gui;importjavax.swing.*;im......
  • Java IO
    文件1.两种路径//1,绝对路径从盘符开始的路径 Filefile1=newFile("D:\\fil\\a.txt");//2,相对路径相对于工程的路径//../返回上一层目录 Filefile2=ne......
  • 使用Java开发贪吃蛇游戏一之静态界面
    一、设置窗口,包括但不限于窗口标题、可见、窗口可关闭,固定大小、设置大小 packagelearn_snake;/**@authorMK*@date2023年3月15日*/importjavax.swing.JFra......
  • Java基础字符串练习
    ​请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。例如:"abcba"、"上海自来水来自海上"均为对称字符串。训练提示:1、判断是否对称,方法的返回值......
  • Java基础字符串练习
    ​我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数......
  • JAVA代码查错
    JAVA代码查错1.abstractclassName{privateStringname;publicabstractbooleanisStupidName(Stringname){}}大侠们,这有何错误?答案: 错。abstract method必......
  • JAVA编程题
    JAVA编程题1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供resetimportjava.util.*;publicclassbycomma{publicsta......
  • 输入一个字符串(例如:3+6-3*4/2,运算符只有 + - * / 四个),计算结果。不考虑加减乘除优先级
    这是自己面试遇到的面试题,考Java基础,String。考的很基础,但是String确实java中很重要的基础部分。题目:输入一个字符串(例如:3+6-3*4/2,输出12。运算符只有+-*/四个),计算......
  • Java中使用字节流和字符流操作文件的几种方法和性能对比
    注:本文转自:https://mp.weixin.qq.com/s/QuFkw-f1l0kyOqsBNNrRmw在Java中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入......
  • Java中获取 List中最后一个元素
    场景简单实现思路:list.get(list.size()-1);实现举例:List数据如下获取最后一个元素bookInfo.getFlightResult().get(bookInfo.getFlightResult().size()-1).getDsttime())......