第三章 运算符、表达式、语句
创始人
2024-02-21 00:12:29
0

内容概括

运算符与表达式

语句概括

if条件分支语句

switch开关语句

循环语句

break和continue语句

数据和for语句

内容详细

1、运算符与表达式

运算符
1.算术运算符
2.关系运算符
3.布尔运算符(逻辑运算符)
4.字符串连接运算符
5.三元运算符
6.赋值运算符*算数运算符
+求和
-相减
*乘积
/商
%求余*关系运算符(二目运算符用来比较两个值的关系,运算结果是boolean或者true)
>
>=
<
<=
==
!=*布尔运算符
&&逻辑与 -两边式子都为真,才为真
||逻辑或 -两边式子有一个为真,即为真
!逻辑非 -取反,真就是假,假就是真
^ 逻辑异或 -两边式子只要不一样就是真
&&短路与
||短路或
逻辑运算符要求式子两边都是布尔类型,并且最终结果也会是布尔类型
短路与与逻辑与是相同的,只是会出现短路现象,第一个表达式为false就会发生短路
短路或与逻辑或是相同的,只是会出现短路现象,第一个表达式为true就会发生短路*字符串连接运算符
关于java中的“+”运算符
1.两个作用:求和 :数字+数字字符串连接 :两边有一个是字符串就是字符串连接*三元运算符
boolean sex=true;char ss=sex? '男':'女';sex =false;ss =(sex?'男':'女');System.out.println(ss);*赋值运算符
不要将赋值运算符和关系运算符混淆,12=12是非法表达式,12==12的值是true
基本赋值运算符=
扩展的赋值运算符 +=-=*=/=%=*自增自减运算符
自增,自减运算符 ++ -- 是单目运算符,可以放在操作单元之前,也可放在之后,操作元必须是一个整型或浮点型变量,作用是使变量的值增1或者减1
++x(表示在使用x的值之前,增1)
x++(在使用x的值之后,增1)
package Charpet3;public class Plus {public static void main (String [] args) {int k = 10;int l = 10;k++;++l;System.out.println(k);System.out.println(l);int a = 10;int b = a++;System.out.println(a);System.out.println(b);int e = 100;System.out.println(e++);
//		System.out.println(--e);}}package Charpet3;public class Logic {public static void main (String [] args) {System.out.println(5>3&5>2);//trueSystem.out.println(5>3&5>6);//falseSystem.out.println(5>3|5>6);//trueSystem.out.println(!true);//falseSystem.out.println(false^true);//true
//短路与int a=10;int b=8;System.out.println(ab);//falseSystem.out.println(a);//10}
}package Charpet3;public class AssignValue {public static void main(String [] args) {int i =10;System.out.println(i);//10i=i+5;System.out.println(i);//15//扩展的赋值运算符i+=5;System.out.println(i);//20byte b=19;//b=b+5;编译器报错,运算结果是int类型,b是byte类型b+=5;
//		不会报错,相当于byte b = (byte)(b+5);}}package Charpet3;public interface StringConnect {public static void main(String [] args ) {//在控制台输入10+20=30System.out.println("10+20=30");int a = 10;int b = 20;System.out.println(a+"+"+b+"="+(a+b));}}

1.1运算符综述

java表达式就是用运算符连接起来的符合java规则的式子。
运算符的优先级决定了表达式中运算执行的先后顺序

2、语句概括

2.1.1方法调用语句

System.out.println("HelloWorld");

2.1.2表达式语句

由一个表达式构成一个语句,即表达式尾加上分号。例如赋值语句:

x=23;

2.1.3复合语句

可以用{}把一些语句括起来构成复合语句,例如:

{ z=123+x;

System.out.println("How are you");

}

2.1.4空语句

一条分号一个一条语句,称作为空语句

2.1.5控制语句

控制语句分为条件分支语句,开关语句,循环语句

2.1.6package语句和import语句

package语句和import语句与类,对象有关

2.2if条件分支语句

条件分支语句按照语法格式可细分为三种格式

2.2.1 if语句

if (boolean){若干语句;
}
在if 语句中,其中的复合语句中,如果只有一条语句,{}可以省略不写,但为了程序的可读性,最好不要省略

2.2.2 if-else语句

if(表达式){若干语句;
}
else(表达式){若干语句;
}
关键字if后面的小括号表达式一定要是boolean类型,当值为true时,执行紧跟着的复合语句,结束当前if-else语句的执行;当值为false,执行else跟着的复合语句,结束当前if-else语句的执行;
在if-else语句中,其中的复合语句如果只有一条语句,{}可以省略不写

2.2.3if-else if-else语句

if(){}
else if(){}
else {}
首先计算第一个表达式的值,如果计算结果为true,则执行紧跟着的复合语句,结束当前if-else if-else语句的执行;如果执行结果为false,则继续执行第二个表达式的值;如果所有表达式的值都为false,则执行关键字else后面的复合语句,结束当前语句。

2.3switch开关语句

switch(表达式){case 常量值1:若干语句;break;case 常量值2:若干语句;break;case 常量值3:若干语句;break;default:若干语句;}
表达式的值可以为short byte int char 
常量1-3 也是short byte int char,而且要互不相同。
Switch语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相等,就执行改case里的若干语句直到碰到braek为止。若表达式的值不与任何case的常量值相等。执行default后面的若干语句。

2.3.1Example3_4

package Charpet3;
import java.util.Scanner;
public class Example3_4 {public static void main (String [] args) {int number = 0;System.out.println("输入正整数(回车确认)");Scanner reader = new Scanner(System.in);number = reader.nextInt();switch(number){case 9:case 131:case 12:System.out.println(number+"是三等奖");break;case 209:case 596:case 27:System.out.println(number+"是二等奖");break;case 875:case 316:case 59:System.out.println(number+"是一等奖");break;default:System.out.println(number+"未中奖");}}
}

2.4for循环语句

2.4.1基础知识

把需要反复编写的代码放到循环体中,联合计算器共同控制这段需要反复编写的代码
for(初始表达式;布尔表达式;更新表达式){}
1.初始表达式 布尔表达式 更新表达式都不是必须写但是 ;是必须要写
2.初始表达式最先执行,并且只能执行一次
3.布尔表达式必须是 false true
4.for执行过程
执行初始表达式,只执行一次
判断布尔表达式true--执行循环体--更新表达式--布尔--false 循环体结束

2.4.2死循环

public class ForTest01 {public static void main (String [] args ) {for(;;){System.out.println("死循环");}
}
}	

2.4.2循环测试需求

输出1-10内的所有奇数

public class ForTest03 {public static void main (String [] args ) {//输出1到10中的所有奇数for (int i =1; i<=10;i+=2) {System.out.println(i);}
}
}

输出1-10内的所有偶数

public class ForTest03 {public static void main (String [] args ) {//输出1到10中的所有偶数for (int i =2; i<=10;i+=2) {System.out.println(i);}}
}

计算8+88+888+8888....的前12项和

package Charpet3;public class Example3_5 {public static void main(String [] args) {long sum = 0,a=8,item=a,n=12,i=1;for(i=1;i<=n;i++) {sum = sum+item;item = item*10+a;}System.out.println(sum);}}

2.5while循环语句

2.5.1基础知识

1.语法结构
while(布尔值){循环体
}
2.执行原理
判断布尔类型true--执行循环体false--循环结束

2.5.2相关需求编写

死循环

public class WhileTest01 {public static void main (String [] args ) {while (true ) {System.out.println("死循环");}}
}

编译报错

public class WhileTest01 {public static void main (String [] args ) {/*while (true ) {System.out.println("死循环");}*/	//System.out.println("helloworld");语句永远无法访问编译报错//int i = 10;//int j = 3;/*while (i>j ) {//编译器只检查语法不运行,变量的内存空间是在运行阶段开辟的,关系运算符在运行阶段才出现结果//while语句其实不知道真假,程序简单脆弱System.out.println("死循环");}System.out.println("helloworld");*/int i = 10;int j = 3;while (10>3 ) {//不是变量内存知道真假,所以进行编译,出现和第一种情况一样System.out.println("死循环");}System.out.println("helloworld");
}
}

2.6break和continue语句

在循环体中可以使用break语句和continue语句,执行了break语句,当前循环结束;执行了continue,本次循环结束,不执行continue后面的语句,直接进入下一次循环。

2.7for语句与数组

2.7.1基础知识

for(声明循环变量:数组的名字){...}
声明循环变量的类型必须和数组的类型相同
翻译为:对于循环变量依次取数组的每一个元素的值
package Charpet3;public class Example3_8 {public static void main(String [] args) {int a [] = {1,2,3};char b [] = {'a','b','c','d'};
//		for(int n = 0;n

3、scanner类

可以使用该类创建一个对象

Scanner reader = new Scanner (System.in);

然后reader对象调用下列方法,读取用户在命令行输入的各种基本数据类型的数据

nextBoolean()
nextByte()
nextShort()
nextInt()
nextLong()
nextfloat()
nextDouble()

上述方法在执行时都会阻塞,等待用户在命令行输入数据回车确认。例如,如果用户在键盘输入一个byte取值范围的整数89,那么reader对象调用hasNextByte()是true

在键盘上输入数据时,经常让reader对象先调用hasNextXXX方法等待用户在键盘输入数据,然后调用nextXXX()方法获取用户输入的数据。

package Charpet3;
import java.util.*;
public class Example3_9 {public static void main(String[] args) {Scanner reader = new Scanner(System.in);double sum =0;int m =0;while(reader.hasNextDouble()) {double x = reader.nextDouble();m = m + 1;sum = sum+x;}System.out.printf("%d个数的和为%f\n",m,sum);System.out.printf("%d个数的平均值为%f\n",m,sum/m);}}

4、课后习题

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...