首页 > 其他分享 >几个典型运算符之间的区别

几个典型运算符之间的区别

时间:2024-08-02 11:20:09浏览次数:6  
标签:典型 区别 ++ System 运算符 println true out

几个典型运算符之间的区别

1. i++++i

i++(后缀递增运算符)

  • 这被称为后缀递增运算符。它首先返回变量 i 的当前值,然后将 i 的值增加 1。
  • 通常用于循环计数器的递增。

++i(前缀递增运算符)

  • 这被称为前缀递增运算符。它首先将 i 的值增加 1,然后返回新的值。
  • 通常用于确保变量的值在递增之前被使用。

区别

  • i++ 先返回当前值,然后递增。
  • ++i 先递增,然后返回新值。

示例

int i = 5;
System.out.println(i++);  // 输出 5,然后 i 变为 6
System.out.println(++i);  // 输出 7,i 先增加 1

2. &&&

&(按位与运算符)

  • 这是一个二元运算符,用于对两个整数的二进制位进行按位与操作。
  • 它对两个操作数的每一位进行与操作,如果两个位都是 1,则结果位是 1,否则是 0。

&&(逻辑与运算符)

  • 这是一个逻辑运算符,用于比较两个布尔值。
  • 如果两个操作数都为 true,则结果为 true;否则为 false
  • 它是短路运算符,如果第一个操作数为 false,则不会计算第二个操作数。

区别

  • & 用于整数的按位操作,返回一个整数。
  • && 用于布尔值的逻辑操作,返回一个布尔值。
  • && 是短路运算符,而 & 不是。

示例

int a = 5, b = 3;
System.out.println(a & b);  // 输出 1 (二进制 101 & 011)

boolean c = true;
boolean d = false;
System.out.println(c && d); // 输出 false

3. |||

|(按位或运算符)

  • 这是一个二元运算符,用于对两个整数的二进制位进行按位或操作。
  • 它对两个操作数的每一位进行或操作,如果至少有一个位是 1,则结果位是 1。

||(逻辑或运算符)

  • 这是一个逻辑运算符,用于比较两个布尔值。
  • 如果至少有一个操作数为 true,则结果为 true;否则为 false
  • 它是短路运算符,如果第一个操作数为 true,则不会计算第二个操作数。

区别

  • | 用于整数的按位操作,返回一个整数。
  • || 用于布尔值的逻辑操作,返回一个布尔值。
  • || 是短路运算符,而 | 不是。

示例

int a = 5, b = 3;
System.out.println(a | b);  // 输出 7 (二进制 111)

boolean c = true;
boolean d = false;
System.out.println(c || d); // 输出 true

4. >>>

>(大于运算符)

  • 这是一个关系运算符,用于比较两个数值或字符。
  • 如果左边的值大于右边的值,则返回 true;否则返回 false

>>(右移位运算符)

  • 这是一个二元运算符,用于将一个数的二进制位向右移动指定的位数。
  • 如果是算术右移位(没有符号位),则左边用符号位填充;如果是逻辑右移位(有符号位),则左边用 0 填充。

区别

  • > 用于数值或字符的比较。
  • >> 用于数值的二进制位移动。

示例

int a = 5;
int b = 3;
System.out.println(a > b);  // 输出 true

int c = 5;
System.out.println(c >> 1); // 输出 2 (二进制 101 >> 1)

理解这些运算符的区别和联系对于编写正确的 Java 程序和进行有效的逻辑判断非常重要。*

标签:典型,区别,++,System,运算符,println,true,out
From: https://www.cnblogs.com/wjw2003512/p/18338353

相关文章

  • Java中的运算符
    Java中的运算符Java中的运算符用于执行程序中的各种操作,如赋值、算术运算、比较、逻辑运算等。以下是Java中的主要运算符类型及其用法:赋值运算符(=):用于将右侧的值赋给左侧的变量。算术运算符:+加法-减法*乘法/除法%取模(求余数)++递增(使变量值增加1)--......
  • 抽象类,实现(具体)类,接口的区别
    抽象类,实现(具体)类,接口的区别抽象类、具体类和接口是面向对象编程中的三个基本构建块,它们各自有不同的用途和特点。抽象类(AbstractClass)定义:抽象类不能被实例化,它通常用作基类,为其他子类提供一个通用的模板。目的:提供一个通用的框架,包含一些共同的方法和属性,可能包含抽......
  • Java面试题:请问接口与抽象类有何区别?
    引言在OOD(面向对象设计)中,经常会用到抽象类或接口。而在使用过程中,也许会有不少人认为接口和抽象类差不多,然后就想当然地觉得可以相互替换。事实上,虽然他们有很多相似点,但也有很大差异。面试官通常会问你他们到底有哪些差异,以考察你的面向对象功力够不够。下面我就从三个层面谈......
  • C/C++ 运算符优先级相关的注意事项
    在C/C++中,运算符优先级决定了表达式中各部分的计算顺序。理解并正确应用运算符优先级是确保程序逻辑正确性的关键。以下是关于C/C++运算符优先级相关的一些重要注意事项:优先级层次:C/C++中的运算符按优先级从高到低排序。例如,算术运算符(+、-、*、/)的优先级高于赋值运算符(=)......
  • 类型转换运算符
    1.作用类通过自定义的类型转换运算符,可以将一个类型转换成另一个类型。例如将自定义的Student类转换成std::string类。虽然在格式上和运算符重载类似,但运算符重载是一个成员函数,而类型转换运算符不是,因为没有返回值。2.格式operatortype()[const];type:表示转化后的数据......
  • C语言运算符深度解析--超详细
    引言在C语言的浩瀚宇宙中,运算符如同点亮星辰的魔法棒,它们不仅连接着数据的海洋,更驱动着程序的逻辑流转。从基础的算术运算到复杂的位操作,每一个运算符都承载着特定的功能,是构建程序逻辑的基石。掌握C语言的运算符,就如同手握开启编程世界大门的钥匙,让你能够自如地编写出高效、精准......
  • vue3 ref和reactive原理区别
    概述ref是通过一个中间对象RefImpl持有数据,并通过重写它的set和get方法实现数据劫持的,本质上依旧是通过Object.defineProperty对RefImpl的value属性进行劫持。reactive则是通过Proxy进行劫持的。Proxy无法对基本数据类型进行操作,进而导致reactive在面对基本数据类型时的束......
  • C++类的组合和类的继承的区别
    C++类的组合和类的继承的区别类的组合:类的组合是一种将一个类的对象作为另一个类的成员变量的设计方式。classEngine{public:Engine(){/*...*/}~Engine(){/*...*/}};classCar{private:Engineengine;//Engine的构造函数和析构函数将被调用......
  • C++深拷贝和浅拷贝的区别
    C++深拷贝和浅拷贝的区别#include<iostream>#include<cstring>usingnamespacestd;classstudent{public:student(constchar*name,intage);//声明构造函数~student();//析构函数//如果没有定义拷贝构造函数,编译器就自动生成默认拷贝构造函数:浅拷贝......
  • Kotlin 运算符详解:算术、赋值、比较与逻辑运算符全解析
    Kotlin运算符运算符用于对变量和值执行操作。值称为操作数,而操作符定义了要在两个操作数之间执行的操作:操作数运算符操作数100+50在下面的示例中,数字100和50是操作数,+号是运算符:示例varx=100+50虽然+运算符通常用于将两个值相加,如上例所示,但它也可以用......