
《Java程序设计技能教程》-彭德林-电子教案 JAVA程序设计技能教程第4章.ppt
40页Java程序设计技能教程,主编 彭德林 李德有 中国水利水电出版社 ,第4章 基本控制结构,任务一 :掌握Java分支结构,任务三 :实训四 分支及循环结构编程,任务二 :掌握Java循环结构,4.1 任务一 掌握Java分支结构,4.1.1 if语句 1. 简单的条件语句 语句的格式如下: if(表达式) { 语句; },图 4-1 简单的条件语句,说明:,(1) 放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false (2) 如果表达式的值为true,则执行语句;如果表达式的值为false,则什么也不执行 (3) 花括号括起来的语句块可以只有一行语句,也可以由多行代码构成一个语句块通常被当成一个整体来执行 如果语句块只有一行语句时,则可以省略花括号,因为单行语句本身就是一个整体,无须花括号来把它们定义成一个整体例4-1】通过命令行输入一个人的年龄,判断其是否为未成年人 import java.io.*; public class TestAge { public static void main(String[] args) throws IOException { InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in); int age; System.out.println(“请输入一个年龄,回车“); age=Integer.parseInt(bin.readLine()); if(age18) System.out.println(“这是一个未成年人!“); } },【例4-2】已知三个数,要求将它们按照由小到大的顺序输出。
public class NumberSort { public static void main(String[] args) { int a=5,b=7,c=3,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); } },2. 带else的条件语句 语句的格式如下: if(表达式) { 语句1; } else { 语句2; },图 4-2 带else的条件语句,说明: (1)放在if之后的括号里的只能是一个逻辑表达式,即这个表达式的返回值只能是true或false (2)如果if表达式的值为true,则执行语句1;如果表达式的值为false,则执行语句2例4-3】判断一个年份是否为闰年,是则显示,否则提示某年不是闰年闰年的判断规则:如果某年能被4整除且不能被100整除;或者某年能被400整除) import java.io.*; public class TestYear { public static void main(String[] args) throws IOException { InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in);,,int year; System.out.println(“请输入一个年份,回车“); year=Integer.parseInt(bin.readLine()); if(year%4==0 } },【例4-4】通过命令输入两个数,把它们由大到小输出。
import java.io.*; public class TestNum { public static void main(String[] args) throws IOException { InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in); float x,y; System.out.println(“请输入第一个数“); x=Float.parseFloat(bin.readLine());,System.out.println(“请输入第二个数“); y=Float.parseFloat(bin.readLine()); if(xy) System.out.println(x+“,“+y); else System.out.println(y+“,“+x); } },3. if语句的嵌套 在if语句中又包含一个或多个if语句称为if语句的嵌套 语句的格式如下: if(表达式1) { 语句1;} else if(表达式2) { 语句2;} … else if(表达式m) { 语句m;} else { 语句n;},,,,【例4-5】根据百分制分数判定成绩等级,标准如下: A:90~100分 B:80~89分 C:70~79分 D:60~69分 E:60分以下 public class TestGrade { public static void main(String[] args) { int score=89; char ch; if(score=90) ch='A';,else if(score=80) ch='B'; else if(score=70) ch='C'; else if(score=60) ch='D'; else ch='E'; System.out.println(“等级“+ch); } },Java提供了多分支选择语——switch语句。
使用switch可以测试多个不同的条件并做出相对的响应 switch(表达式) { case 常量1:语句序列1; [break;] case 常量2:语句序列2; [break;] … case 常量n:语句序列n; [break;] [ default:语句序列n+1; ] },4.1.2 switch语句,(1)表达式的数据类型可以是byte、short、char和int类型,不允许是浮点数类型和long类型break语句和default子句是可选项 (2)switch语句先计算表达式的值,然后依次匹配case子句后的常量1、常量2……常量n等值,如果遇到匹配的值即执行对应的语句序列,直到遇到break语句为止;如果case子句中没有break语句,则程序继续匹配剩余case子句后的值 (3)如果没有一个常量值与表达式的值相等,则执行default子句中的语句序列;如果没有default子句,switch语句不执行任何操作说明:,【例4-6】根据不同的运算符号(+、-、*、/),对两个数执行相应的运算并输出结果 import java.io.*; public class TestSign { public static void main(String[] args) throws IOException { float a=10f,b=5f,c=0.0f; char sign; System.out.println(“加法(+),减法(-),乘法(*),除法(/),请选择运算符“); sign=(char)System.in.read(); switch(sign) {,case '+':c=a+b; break; case '-':c=a-b; break; case '*':c=a*b; break; case '/':c=a/b; break; default: { System.out.println(“输入符号错误!“); c=-1.0f; } } if (c!=-1.0f) System.out.println(“a=“+a+“b=“+b+“c=“+c); } },【例4-7】根据用户输入1~7之间的一个整数,输出相对应星期的英文单词。
import java.io.*; public class TestWeek { public static void main(String[] args) throws IOException { InputStreamReader in=new InputStreamReader(System.in); BufferedReader bin=new BufferedReader(in); short day; System.out.println(“请输入1~7之间的一个整数“); day=Short.parseShort(bin.readLine()); switch(day) {,case 1:System.out.println(“Monday“);break; case 2:System.out.println(“Tuesday“);break; case 3:System.out.println(“Wednesday“);break; case 4:System.out.println(“Thursday“);break; case 5:System.out.println(“Friday“);break; case 6:System.out.println(“Saturday“);break; case 7:System.out.println(“Sunday“);break; default: System.out.println(“请输入1~7之间的一个数!“); } } },,4.2 任务二 掌握Java循环结构,循环结构是程序中一种重要的基本结构,是指在一定的条件下重复执行某段程序,被重复执行的这段程序称为“循环体”。
Java还提供了break语句和continue语句,可以控制循环语句的执行情况 1. break语句 2. continue语句 continue语句的功能和break语句有点类似,区别是continue语句只是终止本次循环,回到循环条件处,判断是否执行下一次循环而break语句则是完全终止循环可以理解为continue语句的作用是略过当次循环中剩下的语句,重新开始新的循环4.2.1 for语句 语句的格式如下: for(表达式1; 表达式2; 表达式3) { 循环体; },图 4-4 for语句流程图,说明: (1)表达式1一般是一个或多个(用逗号隔开)赋值语句,它用来给循环控制变量赋初值;表达式2是一个布尔类型的表达式,它决定什么时候退出循环;表达式3一般用来修改循环变量,控制变量每循环一次后按什么方式变化这三个部分之间用“;”分开2)for语句的执行过程:在循环刚开始时,先计算表达式1,在这个过程中,一般完成的是初始化循环变量或其它变量根据表达式2的值来决定是否执行循环体表达式2是一个返回布尔值的表达式,若该值为假,将不执行循环体,并退出循环;若该值为真,将执行循环体执行完一次循环体后,计算表达式3。
每次执行循环体之后都要重新验证表达式2的值,直到表达式2的值为false时退出循环 (3)循环体可以是一条简单语句,此时可以省略循环体外的花括号循环体也可以是一组语句块,此时不可以省略循环体外的花括号例4-8】输出1~9之间的所有整数及其平方值 public class TestNum1 { public static void main(String[] args) { for(int i=0,j=0;i=9;i++,j=i*i) { System.out.println(“i=“+i); System.o。
