200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Java新手教程从入门到放弃从入门到精通(3)

Java新手教程从入门到放弃从入门到精通(3)

时间:2023-11-05 05:48:13

相关推荐

Java新手教程从入门到放弃从入门到精通(3)

运算

关系运算

布尔类型

接着上一篇继续讲布尔类型,下面创建两个布尔类型的变量并输出看下结果:

public static void main(String[] args) {boolean bool1 = true;boolean bool2 = false;System.out.println(bool1);//trueSystem.out.println(bool2);//false}

代码中的boolean表示变量bool1和bool2是布尔类型,而且分别初始化值为true和false,从输出结果看,程序没有对boolean类型的值做特殊处理,像int类型一样,直接输出了值本身。

这里先姑且这样理解,待后续讲到字符串类String后,再来从内部分析。

关系运算

关系运算是使用关系运算符把两个变量关联起来,作为表达式,输出一个布尔类型的结果。比如比较变量x是否大于变量y,看下面代码:

public static void main(String[] args) {int x = 5;int y = 6;System.out.println(x > y);//false}

代码中使用关系运算符>,把x和y两个变量关联起来,输出了一个布尔类型的结果false。含义就是x变量大于y变量是个假命题。这样的关系运算符还有<、>=、<=、==、!=,分别表示小于、大于等于、小于等于、等于、不等于,看下面代码:

public static void main(String[] args) {int x = 5;int y = 6;System.out.println(x < y);//trueint z = 5;System.out.println(x >= z);//trueSystem.out.println(x <= z);//trueSystem.out.println(x == z);//trueSystem.out.println(x != z);//false}

输出结果就是x、y、z三个变量各种比较的布尔结果。

逻辑运算

逻辑运算是使用逻辑运算符把布尔类型的变量关联起来作为表达式,输出一个布尔类型的结果。注意下和关系运算的区别,关系运算并没有规定表达式中变量的类型。

逻辑运算符这里介绍三个:&&、||、!,分别表示与、或、非。

在与的关系中,&&两边都是true,结果才是true,否则结果都是false。

在或的关系中,||两边只要有一个true,结果就是true,否则才是false。

非比较好理解,非true就是false,非false就是true。

下面来看代码:

public static void main(String[] args) {boolean b1 = false;boolean b2 = true;//与System.out.println(b1 && b1);//falserSystem.out.println(b1 && b2);//falserSystem.out.println(b2 && b1);//falserSystem.out.println(b2 && b2);//true//或System.out.println(b1 || b1);//falserSystem.out.println(b1 || b2);//trueSystem.out.println(b2 || b1);//trueSystem.out.println(b2 || b2);//true//非System.out.println(!b1);//trueSystem.out.println(!b2);//falser}

通过结果再回头看上面讲的三句话,是否更容易理解一些。

在编辑器中会有4行代码出现黄色的警告信息,不用担心,它暂时不会影响到结果输出,到后续讲到流程控制时会解释为什么会出现警告。

另外,注意如果参与逻辑运算的是表达式,需要先确定表达式的值,再进行逻辑运算,如下面这个例子:

public static void main(String[] args) {int x = 5;int y = 6;System.out.println(x > y || y > x);//true}

代码中先需要确认x>y是false,然后确认y>x是true,最后进行||运算,false||true结果是true。

三元运算

三元运算有的也叫三目运算,在三元运算的表达式中会有两个结果的备选值,具体输出哪个,由一个布尔表达式来确定。运算符由?和:两部分组成,看下面代码:

public static void main(String[] args) {//三元运算boolean b1 = false;boolean b2 = true;System.out.println(b1 ? 0 : 1);//1System.out.println(b2 ? 0 : 1);//0}

分析下结果,布尔类型的变量b1是false,输出了:后面的值1;布尔类型的变量b2是true,输出了:前面的值0。可以简单得出结论:?前的布尔表达式等于true则返回:前的值,等于false则返回:后的值。当然,这样通过结论倒推运算原理的做法不科学,但在入门阶段,可以作为一种理解陌生代码的途径。

之前讲的内容都比较简单,容易理解,下面我设计了一个稍微复杂一点儿的代码逻辑,来验证下学习成果,看下面代码:

public static void main(String[] args) {int x = 100;int y = 25;int z = 6;x += y;x /= 20;boolean b1 = x > z ? true : false;System.out.println(b1);int k = 5;int m = 4;int n = 4;boolean b2 = m < -- k || n > k -- ? true : false;System.out.println(b2);}

根据学习到的知识点,手动运算下,然后对比下程序和手动运算的结果是否一致。

下面我来一步步分析一下上面这个代码的计算流程。

先看比较简单的第一部分:

1.定义了三个int类型的变量x、y、z分别是100、25、6

2.运算x加y,并把结果值赋给x,此时x是125

3.运算x除20,并把结果值赋给x,java中int类型的除,没有余数和小数,所以此时x是6

4.三元运算,判断x是否大于z,因为6大于6是假命题,所以返回:后面的部分false,并复制给b1

所以第一个输出是false。

继续看第二部分,这里涉及到一个运算符优先级的问题,一般规律:

算术运算符>关系运算符>逻辑运算符>赋值运算符

所以:

1.定义了三个int类型的变量k、m、n,分别是5、4、4

2.先执行前减减k,再比较m是否小于k,因为是前减减,所以先执行变量减1再使用,所以此时和m比较的值是4,所以||前半部分的值是false

3.先执行后减减k,再比较n是否大于k,因为是后减减,所以先使用再执行变量减1,所以此时和n比较的值是4,所以||后半部分的值是false

4.||两侧都是false,所以最后三元运算布尔表达式的结果是false,返回:后面的值false

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。