版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 Java基本语法基本语法 控制语句及数组控制语句及数组本节学习目标掌握掌握Java中的中的条件语句条件语句掌握掌握Java中的中的循环语句循环语句掌握掌握Java中的中的数组用法数组用法掌握掌握选择排序、冒泡排序选择排序、冒泡排序算法并能够编码实现算法并能够编码实现控制语句控制语句 控制语句控制语句用于控制程序的流程,以实现程序的各用于控制程序的流程,以实现程序的各种结构方式。种结构方式。 所有应用程序开发环境都提供一个所有应用程序开发环境都提供一个判定过程判定过程,称为,称为控制流语句,即程序控制语句,它用于引导应用程序的控制流语句,即程序控制语句,它用于引导应用程序的执行。执
2、行。控制语句控制语句 JAVA中的中的程序控制语句分为三类程序控制语句分为三类:(1)分支语句分支语句,包括,包括 if 语句和语句和 switch 语句;语句;(2)循环语句循环语句,包括,包括 for 循环语句、循环语句、while 循环语句和循环语句和do-while 循环语句;循环语句;(3)跳转语句,包括)跳转语句,包括break语句、语句、continue语句和语句和return语句。语句。分支语句分支语句分支语句分支语句是逻辑选择的核心,同时也是所有流程控制是逻辑选择的核心,同时也是所有流程控制结构中最基础的控制语句。结构中最基础的控制语句。程序在执行过程中会根据程序在执行过程中
3、会根据条件条件来选择执行程序分支。来选择执行程序分支。分支语句包含两种重要的语句,使用它们可以实现程序分支语句包含两种重要的语句,使用它们可以实现程序流程的分支控制,这两种语句是流程的分支控制,这两种语句是if和和switch语句语句。Java 中的中的 if 条件结构条件结构Java 与与 C+ 中的条件判断语句对比:中的条件判断语句对比:分支语句分支语句u if 语句语句 图图2-1 if语句流程图语句流程图 分支语句分支语句u ifelse语句语句 图图2-2 ifelse流程图流程图 分支语句分支语句u 嵌套使用嵌套使用ifelse语句语句 图图2-3 ifelse语句的基本嵌套形式语
4、句的基本嵌套形式Java 中的嵌套中的嵌套 ifif(表达式表达式1) if(表达式表达式2) / 表达式表达式2为真时执行为真时执行 else / 表达式表达式2为假时执行为假时执行 else /表达式表达式1为假时执行为假时执行if 块中又嵌入块中又嵌入 if Java 中的嵌套中的嵌套if:import java.util.Scanner;public class ExampleIf public static void main(String args) System.out.print(请输入三个整数,它们之间用空格隔开:请输入三个整数,它们之间用空格隔开:); Scanner sc
5、anner=new Scanner(System.in); int a=scanner.nextInt(); int b=scanner.nextInt(); int c=scanner.nextInt(); int t; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; System.out.println(a=+a+,b=+b+,c=+c); 演示示例演示示例1:使用:使用if选择结构选择结构 使用使用if选择结构解决问题选择结构解决问题1:输入三个数,并按小到大输出:输入三个数,并按小到大输出Java 中的中的if读取
6、用户输入读取用户输入在运行时读取用户输入使用使用Scanner类(类(JDK5.0以上)以上) import java.util.Scanner; Scanner scanner=new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); int c = scanner.nextInt();Scanner类有类有nextInt,nextDouble等方法。等方法。 使用使用多重多重if选择结构选择结构Java 中的嵌套中的嵌套 if 将成绩分成几个连续区间判断。使用单个将成绩分成几个连续区间判断。使
7、用单个if选择结选择结构无法完成,使用多个构无法完成,使用多个if选择结构很麻烦选择结构很麻烦 差良好中等优秀06090801001、对学员的结业考试成绩评测、对学员的结业考试成绩评测 成绩成绩=90 :优秀:优秀 成绩成绩=80 :良好:良好 成绩成绩=60 :中等:中等 成绩成绩= 90 ) System.out.println(优秀优秀); else if (score = 80 ) System.out.println(良好良好); else if (score = 60 ) System.out.println(中等中等); else System.out.println(差差);
8、大于等于大于等于90分分大于等于大于等于60分,小于分,小于80分分小于小于60分分大于等于大于等于80分,小于分,小于90分分演示示例演示示例2:使用:使用多重多重if选择结构(选择结构(ExampleMoreIf)使用使用多重多重if选择结构解决问题选择结构解决问题2Java 中的嵌套中的嵌套if 使用使用switch选择结构选择结构 该问题属于该问题属于等值等值判断判断 解决方法:解决方法:使用多重使用多重if选择结构实现选择结构实现使用使用switch选择结构解决选择结构解决2、欢欢参加计算机编程大赛、欢欢参加计算机编程大赛如果获得第一名,将参加麻省理工大学组织的如果获得第一名,将参加
9、麻省理工大学组织的1个月夏令营个月夏令营如果获得第二名,将奖励如果获得第二名,将奖励IBM笔记本电脑一台笔记本电脑一台如果获得第三名,将奖励小米手机一个如果获得第三名,将奖励小米手机一个否则,没有任何奖励否则,没有任何奖励switch (表达式表达式) case 常量常量 1:语句语句1;break; case 常量常量 2:语句语句2;break;default:语句语句n;什么是什么是switch选择结构选择结构计算表达式的值计算表达式的值如果等于常量如果等于常量1 如果等于常量如果等于常量2 如果没有找到匹配的值如果没有找到匹配的值 switch选择结构选择结构 int mingCi =
10、 1; switch (mingCi) case 1: System.out.println(参加麻省理工大学组织的参加麻省理工大学组织的1个月夏令营个月夏令营); break; case 2: System.out.println(“奖励奖励IBM笔记本电脑一台笔记本电脑一台); break; case 3: System.out.println(“奖励小米手机一个奖励小米手机一个); break; default: System.out.println(没有任何奖励没有任何奖励 ); 第一名的情况下第一名的情况下第二名的情况下第二名的情况下第三名的情况下第三名的情况下其他情况下其他情况下使
11、用使用switch选择结构选择结构演示示例演示示例3:使用:使用switch选择结构选择结构使用使用switch选择结构解决问题选择结构解决问题4Java 中的中的循环循环语句语句回顾:回顾:C+中的循环语句有哪些?执行过程怎中的循环语句有哪些?执行过程怎样?样?生活中的循环生活中的循环循环结构的特点循环结构的特点 打印打印50份试卷份试卷10000米赛跑米赛跑旋转的车轮旋转的车轮循环结构循环结构 循环条件循环条件循环操作循环操作锲而不舍地学习锲而不舍地学习什么是循环什么是循环System.out.println(第第1遍写:好好学习,天天向上!遍写:好好学习,天天向上!);System.ou
12、t.println(“第第2遍写:好好学习,天天向上!遍写:好好学习,天天向上!);System.out.println(“第第100遍写:好好学习,天天向上!遍写:好好学习,天天向上!); 100条条为什么需要循环为什么需要循环2-1决定写决定写一万遍一万遍“好好学习,天天向上!好好学习,天天向上!” ,怎么办?怎么办?1、张浩、张浩Java考试成绩未达到自己的目标。考试成绩未达到自己的目标。为了表明自己勤奋学习的决心,他决定写一为了表明自己勤奋学习的决心,他决定写一百遍百遍“好好学习,天天向上!好好学习,天天向上!”System.out.println(第第1遍写:好好学习,天天向上!遍写
13、:好好学习,天天向上!);System.out.println(“第第2遍写:好好学习,天天向上!遍写:好好学习,天天向上!);System.out.println(第第3遍写:好好学习,天天向上!遍写:好好学习,天天向上!);System.out.println(“第第4遍写:好好学习,天天向上!遍写:好好学习,天天向上!);System.out.println(“第第9999遍写:好好学习,天天向上!遍写:好好学习,天天向上!);System.out.println(“第第10000遍写:好好学习,天天向上!遍写:好好学习,天天向上!);为什么需要循环为什么需要循环2-2没有使用循环结构没
14、有使用循环结构循环结构循环结构当条件为当条件为true时反复执行某个语句时反复执行某个语句(1)计数器循环)计数器循环(2)指定次数指定次数的循环,最常见的是的循环,最常见的是for循环循环(3)循环次数不定循环次数不定的循环,通常需要在循环体中检测的循环,通常需要在循环体中检测某个条件,当条件不满足时跳出循环。某个条件,当条件不满足时跳出循环。 While循环、循环、DoWhile循环循环 While 循环循环while 循环的语法格式循环的语法格式表达式表达式1while ( 逻辑表达式逻辑表达式) 循环体 ; 循环体被执行循环体被执行 循环变量初始化循环变量初始化条件判断条件判断int
15、i = 1;while ( i = 100 ) System.out.println(“第第” +i+ “遍写:遍写: 好好学习,天天向上!好好学习,天天向上!); i +;i=10000 While 循环循环使用使用 while 循环解决问题循环解决问题1更新循环变量更新循环变量任务2-3 猜字游戏请结合本章学习到的请结合本章学习到的While循环语句和循环语句和ifelse分分支语句支语句实现一个猜字游戏。实现一个猜字游戏。要求产生一个要求产生一个1100内的随机整数,然后根据输内的随机整数,然后根据输入的数字进行猜测。如果输入的数字太大,则会提入的数字进行猜测。如果输入的数字太大,则会提
16、示猜得太大;如果输入的数字太小,则会提示猜得示猜得太大;如果输入的数字太小,则会提示猜得太小;直到猜对时自动退出本次游戏。太小;直到猜对时自动退出本次游戏。演示示例演示示例4:使用:使用while 和和 if .else语句语句为什么使用为什么使用for循环循环 int i=0;while(i100)System.out.println(好好学习!好好学习!);i+; for(int i=0;i100;i+) System.out.println(好好学习!好好学习!); for比比while更简洁更简洁回顾问题:输出回顾问题:输出100次次“好好学习!好好学习!”使用使用while循环结构循
17、环结构使用使用for循环结构循环结构 特点:循环次数固定特点:循环次数固定for循环循环for( ; ; ) ; 条件为条件为true 循环体被执行循环体被执行 for ( int i = 0 ; i 100 ; i+ ) System.out.println(好好学习!好好学习!); 代码规范:代码规范:格式对齐、代码的缩进格式对齐、代码的缩进 表达式表达式1 表达式表达式2 表达式表达式3 循环操作循环操作 循环变量初始化循环变量初始化条件判断条件判断更新循环变量更新循环变量1243for循环的语法和执行顺序循环的语法和执行顺序for(;i10;i+) System.out.println
18、(这是这是 +i);int i=0;编译错误:编译错误:变量变量 i 没有初始化没有初始化for( ; ; ) ; 不能省略不能省略 可省略可省略表达式表达式1省略,循环变量省略,循环变量的初始值在的初始值在for语句之前语句之前由赋值语句取得由赋值语句取得for循环常见问题循环常见问题4-1for(int i=0;i+) System.out.println(这是这是 +i);编译正确,但是缺少编译正确,但是缺少循环条件,造成死循环循环条件,造成死循环for循环常见问题循环常见问题4-2for(int i=0;i10;) System.out.println(这是这是 +i); i+;省略表
19、达式省略表达式3,在循环体内应设法改,在循环体内应设法改变循环变量的值以结束循环变循环变量的值以结束循环编译通过,但是循环变量的编译通过,但是循环变量的值无变化,造成死循环值无变化,造成死循环for循环常见问题循环常见问题4-3for(;) System.out.println(这是测试这是测试);表达式全省略,无条件判断,循环变量无改变,表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环应在循环体内设法结束循环;否则会造成死循环死循环死循环for循环常见问题循环常见问题4-4课堂练习(思考)如何输出如下数字组成的图案?如何输出如下数字组成的图案?11 21
20、2 31 2 3 41 2 3 4 5演示练习:演示练习: 用二重循环打印数字图案用二重循环打印数字图案思考题代码分析关键代码(关键代码(PrintGraphic)int i, j; / 循环变量循环变量/ 外层循环控制打印的行数外层循环控制打印的行数for (i = 1; i = 5; i+) / 内层循环控制每行打印数字的个数内层循环控制每行打印数字的个数 for (j = 1; j = i; j+) System.out.print(j); System.out.print(t); System.out.println(); 外层循环变量控制外层循环变量控制 内层循环的结束条件内层循环的
21、结束条件退出循环u Break用于从用于从 while, for, do/while或或switch语句的语句的循环体循环体退出退出u Continue用于提前用于提前结束本次循环结束本次循环 ,进入下进入下一次循环,一次循环,用于用于 while, for 或或do/while语句语句u Java支持跳转到标记处,请自学这一语法。支持跳转到标记处,请自学这一语法。上机任务上机任务 2-4 循环与循环与continue语句的使用语句的使用编写程序实现下列图形编写程序实现下列图形:01 22 3 43 4 5 64 5 6 7 85 6 7 8 9 106 7 8 9 10 11 127 8 9
22、 10 11 12 13 148 9 10 11 12 13 14 15 169 10 11 12 13 14 15 16 17 18Java 中的一维数组回顾:为什么要使用数组?回顾:为什么要使用数组?如何设置大小?如何设置大小?数据类型数据类型 数组名数组名 = new 数据类型数据类型大小大小 ;数据类型数据类型 数组名数组名 ; 数据类型数据类型 数组名数组名 ; 声明数组时不规声明数组时不规定数组长度定数组长度 数组数组的特点数组的特点 Arrays(数组)数组)u 一种简单的数据结构一种简单的数据结构u 元素具有相同的数据类型元素具有相同的数据类型u 一旦创建之后,尺寸保持不变一旦
23、创建之后,尺寸保持不变u 元素在内存中连续分布元素在内存中连续分布数组的下标Subscript(下标)(下标) 亦称为亦称为 index(索引),代表元素在整个数组(索引),代表元素在整个数组中的位置中的位置 必须是必须是整数或整数表达式整数或整数表达式,例如例如 a = 5; b = 6; c a + b += 2;数组名 从前面幻灯片所画的从前面幻灯片所画的数组数组 c中中u C代表代表数组名数组名u c.length得到得到c这个数组的长度这个数组的长度u c 有有12 个元素个元素 ( c0, c1, c11 )u c0这个元素的值是这个元素的值是 45u 在在java中拥有最高优先级
24、中拥有最高优先级方法一:边声明边赋值方法一:边声明边赋值解决解决int score = 89, 79, 76;int score = new int 89, 79, 76;如何初始化数组如何初始化数组不能指定数组长不能指定数组长度度 方法二:先声明后初始化方法二:先声明后初始化float fArray = new float2;fArray0 = 4.0f;fArray1 = 5;常见错误int array = new int3 0, 1 ,2; / 声明并初始化一维数组声明并初始化一维数组代码错误代码错误循环输出数组元素如何循环输出数组元素呢?如何循环输出数组元素呢?/ 循环输出数组元素循环
25、输出数组元素int array = new int 0, 1 ,2, 3, 4; / 声明并初始化一维数声明并初始化一维数组组for (int i = 0; i array.length; i+ ) / 输出数组中的所有元输出数组中的所有元素素 System.out.println(arrayi); 常作为循环的条件常作为循环的条件访问数组访问数组u 当用循环语句遍历访问数组元素时当用循环语句遍历访问数组元素时p 下标不能小于下标不能小于0p 下标必须小于最大的数组元素数目下标必须小于最大的数组元素数目 否则否则u 对于非法的数组下标,对于非法的数组下标,Java会抛出异常会抛出异常Array
26、IndexOutOfBoundsExceptionp 处理异常,需要使用处理异常,需要使用trycatch语句语句数组的定义和使用数组的定义和使用public class ArrayTpublic static void main(String args)int i;int x=1,2,3,4,5,6,7,8,9,10;for(i=0;i10;i+) System.out.println(x+i+ is +xi);冒泡排序冒泡排序:冒泡排序:每次比较相邻两数每次比较相邻两数小的交换到前面小的交换到前面每轮结束后最大的数交换到最后每轮结束后最大的数交换到最后1625990231625923909
27、2523第一轮:比较了第一轮:比较了4次次第二轮:比较了第二轮:比较了3次次第三轮:比较了第三轮:比较了2次次第四轮:比较了第四轮:比较了1次次用二重循环实现冒泡排序i = 0i = 1i = 2i = 3第一轮:比较了第一轮:比较了4次次第二轮:比较了第二轮:比较了3次次第三轮:比较了第三轮:比较了2次次第四轮:比较了第四轮:比较了1次次外层循环外层循环如何用二重循环将如何用二重循环将5个数字排序?个数字排序?N = 55个数字存放在个数字存放在一维数组一维数组中中外层外层循环控制比较多少轮,循环变量循环控制比较多少轮,循环变量 i内层内层循环控制每轮比较多少次,循环变量循环控制每轮比较多少
28、次,循环变量 j内层循环内层循环循环循环4次次:j 4循环循环3次次:j 3循环循环2次次:j 2循环循环1次次:j 1i 4i N-1j ?j 4-ij N-1-i用二重循环实现冒泡排序代码框架:代码框架:for (i = 0; i N-1 ; i+) for (j = 0; j N-1-i ; j+) / 比较比较 j 和和 j+1 位置的元素位置的元素 / 如果前大后小就交换如果前大后小就交换 冒泡排序速记口诀冒泡排序速记口诀(升序):(升序):N 个数字来排队个数字来排队两两相比小靠前两两相比小靠前外层循环外层循环 N-1内层循环内层循环 N-1-i冒泡排序关键代码分析:关键代码分析:
29、for (i = 0; i num.length -1 ; i+) for (j = 0; j numj + 1) / 交换元素交换元素 temp = numj; numj = numj + 1; numj + 1 = temp; 经过一轮比较交换,经过一轮比较交换,最大的元素换到了最后最大的元素换到了最后面面外层循环终止条件:数组长度外层循环终止条件:数组长度-1内层循环终止条件:内层循环终止条件:数组长度数组长度 1 - i演示演示冒泡排序,冒泡排序,设置设置断点跟踪断点跟踪数组元素的类型除了可以是基本数据类型、类对数组元素的类型除了可以是基本数据类型、类对象外,还可以是象外,还可以是数组
30、数组。前面介绍的数组也称为一维数组,如果一维数组前面介绍的数组也称为一维数组,如果一维数组的元素又是一维数组,则称此数组为二维数组。的元素又是一维数组,则称此数组为二维数组。二维数组二维数组常用来表示二维表,即以行常用来表示二维表,即以行(rows)及列及列(columns)的方式组织数据。的方式组织数据。二维数组二维数组的定义方式如下:二维数组的定义方式如下:或或与一维数组一样,这时还没有给数组分配空间;与一维数组一样,这时还没有给数组分配空间;对于对象数组,还需要给数组元素分配空间。对于对象数组,还需要给数组元素分配空间。二维数组的初始化也分为静态和动态两种:二维数组的初始化也分为静态和动
31、态两种: 二维数组type arrayName ;type arrayName;静态初始化:在定义数组的同时为数组分配空间。静态初始化:在定义数组的同时为数组分配空间。如:如:二维数组int intArray =1,2,2,3,3,4;动态初始化:对二维数组来说,分配内存空间有下动态初始化:对二维数组来说,分配内存空间有下面两种方法:面两种方法:一种方法是直接为每一维分配空间,格式如下:一种方法是直接为每一维分配空间,格式如下: 例如:例如: 二维数组type arrayName =new typearraylength1arraylength2int a = new int23;另一种方法是
32、从最高维开始(而且另一种方法是从最高维开始(而且必须从最高维开必须从最高维开始始),分别为每一维分配空间。例如,),分别为每一维分配空间。例如,二维数组String s =new String2 ;s0=new String2;s1=new String3;s00=new String(Good);s01=new String(Luck);s10=new String(to);s11=new String(you);s12=new String(!);例例5 编写程序建立并显示如编写程序建立并显示如图所示的二维表,并计算累图所示的二维表,并计算累加和最大的行号。设元素值加和最大的行号。设元素值都为正整数。都为正整数。public class TableTester public static void main(String args) int myTable = 23, 45, 65, 34, 21, 67, 78, 46, 14, 18, 46, 98, 63, 88, 98, 81, 64, 90, 21, 14, 23, 54, 43, 55, 76, 22, 43, 33; 二维数组/显示二维表显示二维表 for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年私人房产买卖合同环保要求与执行标准3篇
- 2025年度路演展示厅清洁维护服务租赁合同4篇
- 二零二五版水利工程开工合同范例2篇
- 2025年度多功能培训学校教室租赁合同范本3篇
- 2025年度厨师行业人才引进与培养服务协议3篇
- 2025年度文化艺术品样品展览与上样合作协议3篇
- 2024综艺节目拍摄基地租赁合同
- 2025年物业保洁外包服务合同(含节能环保服务)3篇
- 2025年度智能电网建设采购战略合作协议合同范本3篇
- 2025年消防给排水系统节能改造与优化合同3篇
- 企业年会摄影服务合同
- 电商运营管理制度
- 二零二五年度一手房购房协议书(共有产权房购房协议)3篇
- 2025年上半年上半年重庆三峡融资担保集团股份限公司招聘6人易考易错模拟试题(共500题)试卷后附参考答案
- 城市公共交通运营协议
- 内燃副司机晋升司机理论知识考试题及答案
- 2024北京东城初二(上)期末语文试卷及答案
- 2024设计院与职工劳动合同书样本
- 2024年贵州公务员考试申论试题(B卷)
- 电工高级工练习题库(附参考答案)
- 村里干零工协议书
评论
0/150
提交评论