PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

第一單元 建立java 程式.
项目6 通用堆栈.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
四資二甲 第三週作業 物件導向程式設計.
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
TQC+ 物件導向程式認證-JAVA.
第 5 章 流程控制 (一): 條件分支.
第二章 JAVA语言基础.
第三章 控制结构.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
控制流程 邏輯判斷 迴圈控制.
物件導向程式設計 (Object-Oriented rogramming)
第二章 C# 基础知识.
C++Primer 3rd edition 中文版 Chap 5
常用工具类.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
本單元介紹何謂變數,及說明變數的宣告方式。
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
抽象类 File类 String类 StringBuffer类
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Java程序设计 第9章 继承和多态.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
C++语言程序设计 第二章 C++简单程序设计.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第一單元 建立java 程式.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第三章 C# 基础知识.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
Week 2: 程式設計概念與 演算法的效能評估
《JAVA程序设计》 语音答疑 辅导老师:高旻.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
程式結構&語法.
Java變數 2014/6/24.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
Review 1~3.
龍老師我不會Debug QQ.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
變數、資料型態、運算子.
第2章 Java语言基础.
第6章 PHP基本語法介紹.
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第二章 Java基础语法 北京传智播客教育
第二章 Java基本语法 讲师:复凡.
Summary
Presentation transcript:

PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。

第3章 运算符、表达式和语句 配合例子源代码一起使用 课件制作人 张跃平

导读 主要内容 重点和难点 运算符与表达式 语句概述 if条件分支语句 switch开关语句 循环语句 break和continue语句 数组与for语句 重点和难点 重点:运算符、表达式和各种控制语句 难点:各种控制语句用法

§3.1 运算符与表达式 Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。 §3.1 运算符与表达式 Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。 Java语言中的绝大多数运算符和C语言相同,基本语句,如条件分支语句、循环语句等也和C语言类似,因此,本章就主要知识点给予简单的介绍 。

§3.1.1 算术运算符与算术表达式 加减运算符: +,- 乘、除和求余运算符: * / % 算术表达式 §3.1.1 算术运算符与算术表达式 加减运算符: +,- 加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型或浮点型数据,加减运算符的优先级是4级。 乘、除和求余运算符: * / % 以上运算符是二目运算符,结合方向是从左到右,乘、除和求余运算符的操作元是整型或浮点型数据。运算符的优先级是3级。 算术表达式 用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。 如:x+2*y-30+3*(y+5)

§3.1.2 自增,自减运算符 自增、自减运算符:++,-- 例如: int f=2; §3.1.2 自增,自减运算符 自增、自减运算符:++,-- 单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1,如: ++x(--x)表示在使用x之前,先使x的值增(减)1。 x++(x--)表示在使用x之后,使x的值增(减)1。 例如: int f=2; int m=2; int x=(f*m++)+m; //x=7; int y=(f*++m)+m; //y=9;

§3.1.3 算术混合运算的精度 java中数据类型的精度从“低”到“高”排列的顺序是: §3.1.3 算术混合运算的精度 java中数据类型的精度从“低”到“高”排列的顺序是: byte short char int long float double Java在计算算术表达式的值时,使用下列计算精度规则: 如果表达式中有双精度浮点数(double型数据),则按双精度进行运算. 如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算. 如果表达式中最高精度是long型整数,则按long精度进行运算. 如果表达式中最高精度低于int型整数,则按int精度进行运算. char型数据和整型数据运算结果的精度是int。 例如:5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。 例如:byte x=7; 则执行表达式 ‘B’+x; 的结果是int型。

§3.1.4 关系运算符与关系表达式 关系运算符: > , < , >= , <= , == , != §3.1.4 关系运算符与关系表达式 关系运算符: > , < , >= , <= , == , != 特点:关系运算符是二目运算符,用来比较两个值的关系,见表4.1。 关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。 运算规则: 在关系运算符中,当操作数是基本数据类型时,比较的是数据内容; 在关系运算符中,当操作数是引用类型时,比较的是引用对象的引用值,判断是否是同一对象,而没有比较对象的内容。 如,4>8,(x+y)>80。

§3.1.5 逻辑运算符与逻辑表达式 逻辑运算符包括: &&、||、! 规则: &&,||也称短路运算符 §3.1.5 逻辑运算符与逻辑表达式 逻辑运算符包括: &&、||、! 其中:&&、|| 为二目运算符,实现逻辑与、逻辑或; !为单目运算符,实现逻辑非。 规则: 逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式,见表4.2。 &&,||也称短路运算符 当前面的表达式op1的值为false时,&&运算符在运算时就不再去计算op2表达式的值;当op1为true时,||运算符就不再计算op2的值。(op1&&op2;op1||op2)。

注意y的值 class Test { public static void main(String args[]) { int x,y=10; if( ((x=0)==0) || ((y=20)==20) ) { System.out.println("现在y的值是:"+y); }

§3.1.6 赋值运算符与赋值表达式 赋值运算符:= 例如:x=20; b=true; §3.1.6 赋值运算符与赋值表达式 赋值运算符:= 赋值运算符是二目运算符,左面的操作元必须是变量,不能是常量或表达式。 赋值运算符的优先级较低,是14级,结合方向右到左。 赋值表达式的值就是“=”左面变量的值。 注意:不要将赋值运算符“=”与等号逻辑运算符“==”混淆。 例如:x=20; b=true;

§3.1.7 位运算符 位运算符:是指对两个整型数据按照对应的位进行运算,结果为新的整型数据。 “按位与”运算 “按位或”运算 §3.1.7 位运算符 位运算符:是指对两个整型数据按照对应的位进行运算,结果为新的整型数据。 “按位与”运算 “&”是双目运算符。运算法则是:如果a,b两个数据对应位都是1,则c的该位是1,否则是0。 “按位或”运算 “|”是双目运算符。运算法则是:如果a,b两个数据对应位都是0,则c的该位是0,否则是1。 “按位非”运算 “~”是单目运算符。运算法则是:如果a对应位都是0,则c的该位是1,否则是1。 “按位异或”运算 “^”是双目运算符。运算法则是:如果a,b两个数据对应位相同,则c的该位是0,否则是1。

例题 例子1中利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。 例子1 class Example3_1 { public static void main(String args[]) { char a1='十',a2='点',a3='进',a4='攻'; char secret='8'; a1=(char)(a1^secret); a2=(char)(a2^secret); a3=(char)(a3^secret); a4=(char)(a4^secret); System.out.println("密文:"+a1+a2+a3+a4); System.out.println("原文:"+a1+a2+a3+a4); } 例子1中利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。 例子1

§3.1.8 instanceof 运算符 instanceof 运算符 是二目运算符,左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true ,否则是false。 例题: class Test { public static void main (String argv[]) { String s=new String(“abc”); if(s instanceof String) System.out.println(“s is a string”); B b=new B(); if(b instanceof Object) System.out.println("b is definitedly an object"); }

§3.1.9 运算符综述 Java的表达式就是用运算符连接起来的符合Java规则的式子。 运算符的优先级决定了表达式中运算执行的先后顺序。 §3.1.9 运算符综述 Java的表达式就是用运算符连接起来的符合Java规则的式子。 运算符的优先级决定了表达式中运算执行的先后顺序。 在编写程序时尽量使用括号()运算符号来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。 运算符的结合性决定了具有相同级别运算符的先后顺序 。

§3.2 语句概述 Java里的语句可分为以下六类 方法调用语句:如:System.out.println(" Hello"); §3.2 语句概述 Java里的语句可分为以下六类 方法调用语句:如:System.out.println(" Hello"); 表达式语句:表示式尾加上分号。比如赋值语句:x=23; 复合语句:可以用{ }把一些语句括起来构成复合语句, 如:{ z=123+x; System.out.println("How are you"); } 空语句:一个分号也是一条语句,称做空语句。 控制语句:控制语句分为条件分支语句、开关语句和循环语句。 package语句和 import语句:它们和类、对象有关,将在第4章讲解。

§3.3 if条件分支语句 if语句 if-else语句 if-else if- ……- else if -else 语句 条件分支语句按着语法格式可细分为三种形式: if语句 if-else语句 if-else if- ……- else if -else 语句

§3.3.1 if语句 if语句是单条件分支语句,即根据一个条件来控制程序执行的流程(如图3.2)。 若干语句 } 注:表达式的值必须是boolean型的;不能用0代表false;用1代表true;

例子2将变量a,b,c内存中的数值按大小顺序进行互换(从小到大排列)。 例题 public class Example3_2 { public static void main(String args[]) { int a = 9,b = 5,c = 7,t=0; if(b<a) { t = a; a = b; b = t; } if(c<a) { t = a; a = c;c = t; if(c<b) { t = b; b = c; c = t; System.out.println("a="+a+",b="+b+",c="+c); 例子2 例子2将变量a,b,c内存中的数值按大小顺序进行互换(从小到大排列)。

§3.3.2 if-else 语句 if-else 语句是双条件分支语句,即根据一个条件来控制程序执行的流程。 若干语句 } else {

例题 例子3中有两条if-else语句,其作用是根据成绩输出相应的信息,运行效果如图3.4。 例子3

§3.3.3 if-else if-else 语句 if-elseif 语句是多条件分支语句,即根据多个条件来控制程序执行的流程。 若干语句 } else if(表达式) { … … else {

多分支流程示意图

§3.4 switch开关语句 switch 语句是单条件多分支的开关语句 它的一般格式定义如下(其中break语句是可选的): { case 常量值1: 若干个语句 break; case 常量值2: ... case 常量值n: default: 若干语句 } 说明: 1)表达式的值必须是:byte,short, Int,char不能是String或者long型的; (与int兼容类型) 2)这里面必须要有break语句, 否则,就会匹配显示从匹配的常量值 到最后。 3)default语句放的位置是任意的。 4)检查时case 常量必须与switch表达式 可用的类型相同。

例子4使用了switch语句判断用户从键盘输入的正整数是否为中奖号码。 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+"是二等奖"); case 875 : case 316 : case 59 : System.out.println(number+"是一等奖"); default: System.out.println(number+"未中奖"); }

§3.5 循环语句 §3.5.1 for循环语句 for语句的语法格式: for语句的执行规则是: §3.5 循环语句 §3.5.1 for循环语句 for语句的语法格式: for (表达式1; 表达式2; 表达式3) { 若干语句 } for语句的执行规则是: (1)计算“表达式1”,完成必要的初始化工作。 (2)判断“表达式2”的值,若“表达式2”的值为true,则进行(3),否则进行(4)。 (3)执行循环体,然后计算“表达式3”,以便改变循环条件,进行(2)。 (4)结束for语句的执行。

例题 例子5:计算8+88+888+8888… …的前12项和。 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); 例子5

§3.5.2 while 循环 while语句的语法格式: while语句的执行规则是: while (表达式) { 若干语句 } (1)计算表达式的值,如果该值是true时, 就进行(2),否则执行(3)。 (2)执行循环体,再进行(1)。 (3)结束while语句的执行。

§3.5.3 do-while循环 do-while语句的语法格式: do- while语句的执行规则是: do { 若干语句 (1)执行循环体,再进行(2)。 (2)计算表达式的值,如果该值是true时, 就进行(1),否则执行(3)。 (3)结束while语句的执行。

例题 例子6用while语句计算1+1/2!+1/3!+1/4! … 的前20项 public class Example3_6 { 例子6 public static void main(String args[]) { double sum = 0,item = 1; int i = 1,n = 20; while(i<=n) { sum = sum+item; i = i+1; item = item*(1.0/i); } System.out.println("sum="+sum);

§3.6 break和continue语句 break和continue语句是用关键break或continue加上分号构成的语句。 如果在某次循环中执行了break语句,那么整个循环语句就结束。如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环。

例题 例子7使用了continue和break语句,计算1+3+5…输出100内的素数. 例子7 public class Example3_7 { public static void main(String args[]) { int sum=0,i,j; for( i=1;i<=10;i++) { if(i%2==0) { //计算1+3+5+7+9 continue; } sum=sum+i; System.out.println("sum="+sum); for(j=2;j<=100;j++) { //求100以内的素数 for( i=2;i<=j/2;i++) { if(j%i==0) break; if(i>j/2) { System.out.println(""+j+"是素数"); 例子7使用了continue和break语句,计算1+3+5…输出100内的素数. 例子7

§3.7 for语句与数组 for(声明循环变量:数组的名字) { …… } JDK1.5后,对for语句的功能给予扩充、增强,以便更好地遍历数组。语法格式如下: for(声明循环变量:数组的名字) { …… } 其中,声明的循环变量的类型必须和数组的类型相同。这种形式的for语句类似自然语言中的“for each”语句,为了便于理解上述for语句,可以将这种形式的for语句翻译成“对于循环变量依次取数组的每一个元素的值”。

例题 例子8分别使用for语句的传统方式和改进方式遍历数组。 例子8 public class Example3_8 { public static void main(String args[]) { int a[] = {1,2,3,4}; char b[] = {'a','b','c','d'}; for(int n=0;n<a.length;n++) { //传统方式 System.out.println(a[n]); } for(int n=0;n<b.length;n++) { //传统方式 System.out.println(b[n]); for(int i:a) { //循环变量i依次取数组a的每一个元素的值(改进方式) System.out.println(i); for(char ch:b) { //循环变量ch依次取数组b的每一个元素的值(改进方式) System.out.println(ch);

3.8 应用举例 例子9中,用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符串结束整个输入操作过程。程序将计算出这些数的和以及平均值。效果如图3.9所示。在从键盘输入数据时,经常让reader对象先调用hasNextXXX()方法等待用户在键盘输入数据,然后再调用nextXXX()方法获取用户输入的数据。 例子9

总结 1 Java提供了丰富的运算符,学会各种运算符的使用. 2 Java语言控制语句分为条件控制语句和循环控制语句.

作业 习题3: 2,3,4

本章结束 Thank You !