登录
首页 >  文章 >  java教程

使用一元运算符

来源:dev.to

时间:2024-11-10 21:31:03 134浏览 收藏

今天golang学习网给大家带来了《使用一元运算符》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

根据定义,一元运算符是只需要一个操作数或变量来
函数。它们经常执行简单的任务,例如增加
数值变量减一,或对布尔值求负。

使用一元运算符

逻辑补码和否定运算符
逻辑补运算符 !,翻转布尔表达式的值。例如,
如果值为 true,则将其转换为 false,反之亦然。为了说明这一点,请比较
以下语句的输出:

boolean x = false;
system.out.println(x); // false
x = !x;
system.out.println(x); // true

同样,否定运算符,-,反转数值表达式的符号,如图
在这些声明中:

double x = 1.21;
system.out.println(x); // 1.21
x = -x;
system.out.println(x); // -1.21
x = -x;
system.out.println(x); // 1.21

根据描述,很明显某些运算符需要变量
或他们正在采取行动的特定类型的表达。例如,您不能申请
否定运算符 - 应用于布尔表达式,也不能应用逻辑补
运算符 ! 到数值表达式。警惕考试中试图这样做的问题,
因为它们会导致代码无法编译。例如,以下代码行都没有
将编译:

int x = !5; // does not compile
boolean y = -true; // does not compile
boolean z = !0; // does not compile

第一个语句不会编译,因为在 java 中你无法执行
数值的逻辑反转。第二条语句无法编译,因为您
无法对布尔值进行数值求反;您需要使用逻辑逆运算符。
最后,最后一条语句无法编译,因为您无法获取数值的逻辑补码,也无法将整数分配给布尔变量。

在 java 1 中和 true 在
中没有关系 无论如何,就像 0 和 false 没有关系一样。

自增和自减运算符
递增和递减运算符 ++ 和 -- 分别可以应用于数字
与二元运算符相比,操作数 和 具有更高的顺序或优先级。在
换句话说,它们通常首先应用于表达式。
自增和自减运算符需要特别小心,因为它们的顺序
应用于相关操作数可以改变表达式的处理方式。如果运算符放在操作数之前,称为预自增运算符预自减运算符,则首先应用运算符并返回值
是表达式的新值。或者,如果运算符位于操作数之后,
称为后自增运算符后自减运算符,则返回表达式的原始值,返回值后应用运算符
这是示例图:

int counter = 0;
system.out.println(counter); // outputs 0
system.out.println(++counter); // outputs 1
system.out.println(counter); // outputs 1
system.out.println(counter--); // outputs 1
system.out.println(counter); // outputs 0

第一个预自增运算符更新计数器的值并输出新的
值为 1。下一个后递减运算符也会更新 counter 的值,但输出
递减发生之前的值。
认证考试中的一种常见做法(尽管在现实世界中不太常见)是
将多个递增或递减运算符应用于同一行上的单个变量:

int x = 3;
int y = ++x * 5 / x-- + --x;
system.out.println("x is " + x);
system.out.println("y is " + y);

这个比上一个例子更复杂,因为 x 被修改了三个
多次在同一条线上。每次修改时,随着表达式从左向右移动,
x 的值发生变化,为变量分配了不同的值。正如你所记得的
从我们对运算符优先级的讨论来看,运算顺序在
中起着重要作用 评估这个例子。
那么如何阅读这段代码呢?首先,x 递增并返回表达式,
乘以 5。我们可以简化它:

int y = 4 * 5 / x-- + --x; // x assigned value of 4

接下来,x 递减,但表达式中使用了原始值 4,导致
这个:

int y = 4 * 5 / 4 + --x; // x assigned value of 3

x 的最终赋值将值减少为 2,并且由于这是一个预自增运算符,因此该值将返回到表达式:

int y = 4 * 5 / 4 + 2; // x assigned value of 2

最后,我们从左到右计算乘法和除法,并以加法结束。然后打印结果:

x is 2
y is 7

总而言之,一元运算符通过启用快速的单操作数操作(例如递增、求反或反转值)来简化和精简代码。它们对于高效的逻辑、紧凑的表达式和简洁的数据控制、增强编程的可读性和功能性至关重要。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《使用一元运算符》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>