JavaSE基础第四章(运算符、控制语句)

JavaSE基础第四章(运算符、控制语句),第1张

JavaSE基础第四章(运算符、控制语句

文章目录
  • 一、运算符
    • 1、概述
    • 2、运算符详解
      • 2.1算术运算符
      • 2.2关系运算符
      • 2.3逻辑运算符
      • 2.4赋值运算符
      • 2.5条件运算符
      • 2.6字符串连接运算符
  • 二、控制语句
    • 1、概述
    • 2、控制语句详解
      • 2.1选择语句
        • 2.1.1if
        • 2.1.2switch
      • 2.2循环语句
        • 2.2.1for
        • 2.2.2while
        • 2.2.3do...while
      • 2.3转向语句
        • 2.3.1break
        • 2.3.2continue
      • 2.4返回语句
  • 总结

一、运算符 1、概述

运算符是指对 *** 作数的运算方式。组成表达式的Java *** 作符有很多种(什么是 *** 作数和 ***
作符,例如 1+2,其中 1 和2 都是 *** 作数,+是 *** 作符, *** 作符和 *** 作数联合起来构成表达式)。 运算符按照其要求的 *** 作数数目来分,可以有单目运算符(1 个 *** 作数)、双目运算符(2 个 *** 作数)和三目运算符(3个 *** 作数)。运算符按其功能来分,有算术运算符、赋值运算符、 关系运算符、逻辑运算符、位运算符、条件运算符、字符串连接运算符和其他运算符。常见的 运算符如下所示:

2、运算符详解 2.1算术运算符

算术运算符包括:+(两个数字求和)、-(两个数字相减)、*(两个数字乘积)、/(两
个数字相除)、%(两个数字取模或者求余)、++(单目运算符,对数字自加 1)、–(单目 运算符,对数字自减 1)。
++可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要执行完++,最终的结果都会让变量自加1。那么++出现在变量前和变量后到底有什么区别呢?
看以下代码:

int m = 20;
int n = m++;
//当++出现在变量后,会先做赋值运算,
System.out.println(n);//20
System.out.println(m);//21
-----------------------------------
int x = 20;
int y = ++x;
System.out.println(y);//21
System.out.println(x);//20
//当++出现在变量前,会先进行自己加1的运算,然后在赋值
2.2关系运算符

>、>=、<、<=、==、!=。关系运算符主要是完成数据和数据之间的比较,比如:5>3,结果是 true(真),5>10,结果是 false(假)。

2.3逻辑运算符

逻辑运算符主要包括逻辑与(&),逻辑或(|),逻辑异或(^),短路与(&&),短路
或(||)。所有逻辑运算符的特点是 *** 作数都是布尔类型,并且最终的运算结果也是布尔类型。 逻辑运算符的基本运算规则如下表所示:

逻辑与(&)与短路与(&&)的区别:
逻辑与(&)运算符只有当两边的 *** 作数都是 true 的时候,结果才是 true,只要有一个是 false,结果必然是 false。
短路与(&&)在左边的表达式结果为 false的时候,右边的表达式则不再执行,这种现象被称为短路现象,这种机制也显得短路与比较智能一些,效率更高 一些,所以在实际开发中短路与(&&)的使用率要比逻辑与高一些。但这并不是绝对的,有 的时候也可能会选择使用逻辑与(&),这取决于你是否期望右边的表达式一定执行。

2.4赋值运算符

赋值运算符目前也是只需要掌握=、+=、-=、=、/=、%=,其它和二进制相关的内容也是到后面遇到的时候再详细学习。赋值类的运算符包括基本赋值运算符(=)和扩展的赋值运算 符(+=、-=、=、/=、%=)。
对于扩展类的赋值运算符在运算的过程中不会改变运算的结果类型,也就是说 byte b = 100; b += 1000;b 变量最初是 byte类型,最后的运算结果还是一个 byte 类型。这是一条固定的语法规则,记住就行了,以后在使用扩展类赋值运算符的时候要谨慎,不小心就会精度损失的。

2.5条件运算符

条件运算符属于三目运算符,它的语法结构是:布尔类型表达式?表达式1:表达式2.
他的运行原理:先判断布尔类型表达式的运行结果是true还是false,true的话应表达式2,false的话运行表达式2
实际上条件运算符和后期要学习的控制语句if可以达到同等效果。在实际开发中灵活运用 条件运算符会让你的代码看起来更加简洁清凉,达到意想不到的效果。

2.6字符串连接运算符

在 java语言中所有的字符串都使用半角双引号括起来的,字符串属于引用数据类型,不属于基本数据类型的范畴,怎么定义一个字符串的变量呢?
例如:String name = “Jack”;在java中对字符串的 *** 作十分频繁,例如字符串的拼接 *** 作,就需要用到“+”字符串连接运算符。
实际上“+”运算符在 java 语言中有两个作用,作用一是对数字进行求和运算,作用二就是字符串连接运算,那么它在什么时候是进行求和,什么时候又进行字符串连接呢?大家可以 这样进行区分,当“+”运算的时候,两边的 *** 作数都是数字的话,一定会进行求和运算,只 要其中有一个 *** 作数是字符串类型,那么一定会进行字符串拼接运算,字符串拼接之后的结果 还是字符串类型。需要注意的是,当一个表达式当中有多个“+”,并且在没有小括号的前提 下,遵循自左向右的顺序依次执行。我们来看一段程序:

public class Test1{
	public static void main(String[] args){
		int a = 10;
		int b = 20;
		int c = a + b;//+号两边都是数字执行加法运算
		System.out.pritnln("a + b = " + c);//a+b=30
		
		System.out.println(a + " + " + b + " = " + a + b);
	}
}

除了以上所讲的运算符之外,实际上还有其它运算符,例如位运算符主要 *** 作二进制位的,还有运算符 instanceof、new 等。这里就不再赘述了,当前使用较少,后期使用到的时候我们 再看。

二、控制语句 1、概述

控制语句即用来实现对程序流程的选择、循环、转向 和返回等进行控制。Java语言中共有 8种控制语句,可以分为“选择语句”,“循环语句”, “转向语句”,“返回语句”四类。那么,这8 种控制语句分别是什么呢?if语句、switch语 句、for循环、while 循环、do…while 循环、break语句、continue 语句、return语句。
其中if和 switch语句属于选择语句,for、while、do…while 语句属于循环语句,break和 continue 语句属 于转向语句,return属于返回语句。

2、控制语句详解 2.1选择语句

选择语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。因此,在编写选择语句之前,应该首先明确判断条件是什么,并确定当判断结果 为“真”或“假”时应分别执行什么样的 *** 作/算法。在 Java语言中选择语句主要提供了两个, 一个是 if语句,另一个则是 switch语句。

2.1.1if

if语句语法有以下四种:

原理如下:

通过以上原理的分析,我们可以得出if语句的任何一种形式在执行的时候只要有一个分支执行,则所对应的整个 if语句就全部结束了,换句话说,对于一个独立的完整的 if语句来说, 最多只能有一个分支执行。

2.1.2switch

switch的语法如下:

switch运行原理如下:

使用switch语句的注意事项:
① switch语句后面的小括号“()”当中都可以出现什么,在JDK1.6 之前(包括1.6 在内)switch只能探测 int 类型的数据,但是在 JDK1.7 之后(包括 1.7 在内),switch语句除了支持 int 类型之外,还支持 String 类型。也就是说从 Java7 开始 switch 后面小括号中可以出现字符串。
② switch虽然只能探测 int 类型,但是也可以将 byte,short,char 类型放到小括号当中,因为这些类型会自动转换成int 类型(小容量向大容量转换称为自动类型转换)。
③ switch语句当中 case 是可以进行合并的。
④ switch语句当中当某个分支匹配成功,则开始执行此分支当中的java语句,当遇到当前分支中的“break;”语句,switch语句就结束了,但是如果当前分支中没有“break;”语句, 则会发生 case 穿透现象,也就是说下一个分支也不再进行匹配,直接进入下一个分支执行, 直到遇到“break;”为止。

2.2循环语句

在不少实际问题中有许多具有规律性的重复 *** 作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,取决于循环的终止条件。循环结构 是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是 由循环体及循环的终止条件两部分组成的。java 中的循环语句共包括三个,分别是:for 循环、 while 循环、do…while 循环。

2.2.1for

for的语法格式如下:

for 循环的使用我们还需要注意初始化变量的作用域,在for 循环当中声明的变量只在for循环中有效,当 for循环结束之后,初始化变量的内存就释放了/消失了,所以在 for循环之外是无法访问该变量的。
循环当中可以使用嵌套循环,之前我们就说过所有控制语句都是可以嵌套使用的,当循环A中嵌套循环B的时候就等于在A循环 体中的代码是B循环。其实大家在学习循环嵌套的时候完全没必要特殊化对待,完全可以把A 循环体当中的B循环看做是一段普通的 java代码,如下图:

2.2.2while

for的语法格式如下:

执行顺序:先判断布尔表达式的结果,如果是true,则执行循环体,循环体结束之后,再次判断布尔表达式的结果,如果是true,再执行循环体,循环体结束之后,再判断布尔表达式的结果,直到结果 为 false 的时候,while 循环结束。

2.2.3do…while

do…while的语法格式如下:

执行顺序:

do…while 循环是while 循环的变形,它们的区别在于 do…while 循环可以保证循环体执行次数至少为 1 次,也就是说 do…while 循环的循环体执行次数是 1~N次,它有点儿先斩后奏的意思,而while 循环的循环体执行次数为 0~N次。

2.3转向语句

转向语句用于实现循环执行过程中程序流程的跳转,在Java中转向语句有break、continue语句。

2.3.1break

break可以使用在switch语句当中,用来终止 switch 语句的执行,这个之前我们用过,这里不再赘述,break 语句重点是使用在循环语句当中,用来终止/跳出循环。
break语句默认情况下只能终止离它“最近”的“一层”循环。
break 语句可以终止内部循环,不影响外部循环的执行。当多层循环嵌套的时候,可以给每个循环设置标识,
例如:first:for…、second:for…,当某个条件成立时,想终止指定循环的话,可以这样做:break first;或者 break second;,这样指定的循环就结束了。总之,break语句出现在循环当中用来终止循环的执行。

2.3.2continue

continue和 break语句都是用来控制循环的,break 语句是用来终止循环的执行,而 continue 语句则是用来终止当前本次循环,直接进入下一次循环继续执行。看以下代码进行对比:

for(int i = 1; i <= 10; i++){ 
	if(i == 5){ 
		break;
	} 
	System.out.println("break : i = " + i);
} 
System.out.println("----------------------"); 
for(int i = 1; i <= 10; i++){ 
	if(i == 5){ 
		continue;
	} 
	System.out.println("continue : i = " + i);
}

运行结果如图:

2.4返回语句 总结

本章节内容需要我们掌握开发中常用运算符的使用,包括算术运算符、关系运算符、逻辑
运算符、赋值运算符、条件运算符、字符串连接运算符。实际上除了以上所讲运算符之外,还 有其它运算符,比如位运算符、instanceof、new等运算符,在当下使用较少,后期用到的时候再进行学习。
控制语句中if 语句、for 循环、while 循环使用最为频繁。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5687329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存