[理学]第3章Java程序设计.ppt_第1页
[理学]第3章Java程序设计.ppt_第2页
[理学]第3章Java程序设计.ppt_第3页
[理学]第3章Java程序设计.ppt_第4页
[理学]第3章Java程序设计.ppt_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 Java程序设计基础,3.1 Java的字符集和保留字 3.2 Java提供的基本数据类型 3.3 变量和常量 3.4 运算符和表达式 3.5 基本流程控制语句 3.6 综合运用实例,3.1 Java的字符集和保留字,Java源代码使用的是Unicode编码,Unicode采用16位二进制表示一个字符,比ASCII字符集通常最多只有255个字符多的多,可达65535个。 Java符号分为:标识符、关键字、运算符。,3.1.1 Java的字符集,不提倡的程序风格,一种不好的风格,class Point int x,y;Point(int x1,int y1) x=x1; y=y1; Point( )this(0,0); void moveto(int x1,int y1) x=x1;y=y1; ,提倡的程序风格,class Point int x, y; / 点的x轴、y轴坐标 Point(int x1, int y1) / 构造方法 x = x1; y = y1; Point() / 构造方法 this( 0, 0); void moveto(int x1, int y1) / 点移动到(x1, y1) x = x1; y = y1; ,程序应使用缩进格式,使得同一层语句的起始列位置相同 程序中适当地加入注释,会增加程序的可读性 。注释不影响程序的执行结果,编译器将忽略注释 Java中的三种注释形式:,/ 在一行的注释 /* 一行或多 行的注释 */,3.1 Java的字符集和保留字,标识符定义: 程序员对程序代码中的各个元素加以命名。 在Java语言中,对标识符的命名规定如下: 标识符由字母、下划线(_)、美元符($)和数字组成,且第一个字符不能是数字。其中,字母包括大小写英文字母和汉字。 Java的标识符是区分大小写的。 标识符命名时应避免使用单个字符,应见名知意。 标识符没有最大长度限制。,3.1.1 Java的字符集,Java编码体制,Java中的一些命名约定 : 变量名、对象名、方法名、包名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写。如getAge。 类名首字母大写。 常量名全部字母大写。,判断标识符是否正确,Identifier 2Sun User_name $change class _sys_var1 #myname,判断标识符是否正确,Identifier 2Sun / 错误:以数字2开头 User_name $change class /错误:是Java的关键字,有特殊含义 _sys_var1 #myname /错误:含有其他符号#,3.1.2 Java的关键字,Java语言规定了特定含义的标识符被称为关键字,也称为保留字(reserved word) 。用户只能按照系统规定的方式使用保留字,不能自行定义。 注意:Java语言中的保留字均用小写字母表示。,3.1 Java的字符集和保留字,回目录,Java关键字,3.2 Java提供的基本数据类型,表3-1 Java的基本数据类型,回目录,3.3 常量,常量(Constant)是在程序运行过程中不能修改的量,用关键字final实现。 定义格式如下: final 数据类型 常量名1=值1; 例如: 如: final float PI=3.14159; final char SEX=M; final int MAX=100;,声明符号常量的优点如下: 增加了程序的可读性,从常量名可知常量的含义。 增强了程序的可维护性,只要在常量的声明处修改常量的值,就自动修改了程序中所有地方所使用的常量值。,3.3 变量和常量,变量(Variable)是程序运行过程中可以被修改的量,用于存储数据。 可以同时声明同一数据类型的多个变量,各变量之间用逗号分隔。 定义格式如下: 数据类型 变量名1=值1; 例如: float x=25.4, y; char c; boolean flag1=true, flag2; int l, m; 其中,变量x和flag1被赋予初始值,其它变量没有初始化。,3.3 变量和常量,1布尔类型(boolean) 布尔型类型也称作逻辑类型,取值只有两个值true和false。 例:boolean b=true; /定义布尔型变量b,例:使用逻辑类型变量 public class Logic public static void main(String args) boolean instance1=true; boolean instance2=false; System.out.println(“逻辑状态1=”+instance1+” “+ ”逻辑状态2=“+instance2); 程序运行结果如下: 逻辑状态1=true 逻辑状态2=false,3.3 变量和常量,2字符类型(char) 字符常量是用单引号括起来的一个字符,如a,A。 一个char表示一个Unicode字符,其值占16位,范围为065535。,字符类型数据的表示方法: 用单引号括起来的单个字符 例:char c=a; 用Unicode码表示,前缀是“u” 例:char a= u0067; Unicide字符集中的控制字符需要通过转义字符表示。 char tab=t; /表示tab键,例:使用字符类型变量 public class CharTest public static void main(String args) char c=a; char tab=t; char a=u0067; System.out.print(“c=“+c); System.out.print(tab); System.out.print(“a=“+a); 程序运行结果如下: c=a a=g,3整型数据 整型常量有以下形式: 十进制数。用09之间的数字表示的数,其首位不能为0。 八进制数。用07之间的数字表示的数,以0为前缀。 十六进制数。用09之间的数字或af,AF之间的字母表示的数,以0x或0X为前缀。 (1)十进制整数 例:123,-456,0。 (2)八进制整数 以0开头。 例:0123表示十进制数83,-011表示十进制数-9。 (3)十六进制整数 以0x或0X开头。 例:0x123表示十进制数291,-0XBABE表示十进制数47860。,3.3 变量和常量,3.3 变量和常量,Java为整型变量提供了byte、short、int和long四种类型。,例:使用整数型变量 public class Integers public static void main(String args) int a=015; /八进制数 int b=20; /十进制数 int c=0x25; /十六进制数 short x=30; long y=123456L; System.out.println(“a=“+a); /输出a的值 System.out.println(“b=“+b); System.out.println(“c=“+c); System.out.println(“x=“+x); System.out.println(“y=“+y); ,程序运行结果如下: a=13 b=20 c=37 x=30 y=123456,3.3 变量和常量,浮点数类型有2种表示形式: 标准记数法:由整数部分、小数点和小数部分组成,如12.37 科学记数法:由尾数、E或e及阶码组成,也称为指数形式,如2.5E4表示2.5104 有2种浮点数类型:float(单精度浮点数)和double(双精度浮点数)。 单精度占用内存更小,双精度表示范围更大。 一个浮点数缺省类型为double。要表示一个浮点数为float型,在其后加后缀F或f,如34.5f。,3.3 变量和常量,例判断是double还是float: 0.123 (double型) 1.23 (double型) 1.23f (float型) 定义 double a=0.897,b; float pi=3.14f;,例:使用单精度和双精度类型变量 public class Floats public static void main(String args) float a=35.45f; double b=3.56e18; System.out.println(“a=“+a); System.out.println(“b=“+b); 程序运行结果如下: a=35.45 b=3.56E18,表:Java简单数据类型,3.3 变量和常量,类型标识符可以是任意的基本数据类型或复杂数据类型。 变量名必须符合标识符的规定,并习惯采用小写字母。如果变量名由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写。取名时最好符合“见名知意”的原则。例如:int age; 如果声明中包含“=常量”部分,系统将此常量的值赋予变量,作为变量的初始值。 可以同时声明同一数据类型的多个变量,各变量之间用逗号分隔。,【例】常量变量定义的综合举例,/例3-1代码 Test.java public class Test public static void main (String args ) final double C_INCH = 1.414; /定义double型常量C_INCH,值1.414 int x , y ; /定义x,y两个整型变量 float z = 1.234f ; /指定变量z为float型,且赋初值为1.234 double w = 1.234 ; /指定变量w为double型,且赋初值为1.234 boolean flag = true ; /指定变量flag为boolean型,且赋初值为true char c ; /定义字符型变量c String str ; /定义字符串变量str String str1 =“Hi“ ; /指定变量str1为String型,且赋初值为”Hi”,3.3 变量和常量,/以下几条语句中使用了赋值运算符”=”,语句的作用是将右侧的值赋给 /左侧的变量 c =A; /给字符型变量c赋值A str = “ bye “ ; /给字符串变量str赋值“bye“ x = 12 ; /给整型变量x赋值为12 y = 300; /给整型变量y赋值为300 System.out.println(“C_INCH = “+ C_INCH); /向屏幕输出“C_INCH =1.414” System.out.println(“z= “+z); System.out.println(“w = “+w); System.out.println(“flag=“+flag); System.out.println(“str1=“+ str1); System.out.println(“c=“+c); System.out.println(“str=“+ str); System.out.println(“x=“+x); System.out.println(“y=“+y); ,3.3 变量和常量,回目录,3.4 运算符和表达式,表达式是由操作数和运算符按一定的语法形式组成的。 一个常量或一个变量名是最简单的表达式; 表达式的值还可以作为其他运算的操作数,以形成更复杂的表达式。 例如: int i=5, j=10, k; k=(24+3*i)*j;,3.4 运算符和表达式,运算符 对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。 根据操作数的个数,可以将运算符分为单目、双目和多目运算符。单目运算符只对1个操作数运算,双目运算符对2个操作数运算。 根据操作数和运算结果,运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符。,3.4.1 算术运算符及表达式,算术运算表达式由操作数和算术运算符组成。,表:二元算术运算符,例: 3+2; float a=7.8, y=2.2; a-y;,3.4 运算符和表达式,算术运算算例,例如: 23+5 /结果是28 6*5 /结果是30 27/3 /结果是9 45/4 /结果是11 9%3 /结果是0 9%4 /结果是1,一元算术运算符共有四种,如表所示。,表:一元算术运算符,例:int i=3, j; j=i+; /结果,j等于3,变量i赋值给j后加1 int i=3, j; j=+i; /结果,j等于4,变量i加1后在赋值给j,3.4 运算符和表达式,3.4.2 逻辑运算符及表达式,逻辑运算符: 非(!)、逻辑与(&)、逻辑或(|)。 逻辑运算是对布尔类型操作数进行的与、或、非、异或等运算,运算结果仍然是布尔类型值。,表: 布尔值的逻辑运算表,3.4 运算符和表达式,逻辑运算算例,例如: ! true /结果是false true & false /结果是false true | false /结果是true 给定一个变量值,然后逻辑运算可以用于判断该值是否满足组合条件,例如 ( age20) & (age30) /判断age的值是否在2030之间 ( ch= =b) | (ch= =B) /判断ch的值是否为字母b 或B,,3.4.3 关系运算符及表达式,关系运算符用来比较两个操作数。 由两个操作数和一个关系运算符构成一个最简单的关系表达式。 关系表达式的运算结果是布尔值,即为真(true)或者为假(false)。 关系运算符都是二元运算符,共有六种为、=、=、=、!=。,3.4 运算符和表达式,表: 关系运算符,例: int count, i, n; 7count3 count3 ,3.4 运算符和表达式,关系运算算例,例如: 23.510.4 /结果是true 45!=45 /结果是false 76 /结果是false true!=false /结果是true Ta /结果是true u9 /结果是false,3.4.4 位运算符及表达式,由位运算符和整型操作数组成的表达式叫位运算表达式。 Java中提供的位运算符有: 、&、|、。,表3-7 位运算符,表:位运算符,3.4 运算符和表达式,位运算符,位运算是对整数类型的操作数按二进制的位进行运算,所运算结果仍然是整数类型值。位运算符有:(位反)、&(位与)、|(位或)、(位异或)、(右移位)。 左移一位后最右位补0,移几位补几个0; 右移一位,移多少位就丢弃多少位并补零,位运算真值表,位运算算例,例如:x=132,y=204;计算x和xy的值 (1)将整数转换为二进制数。 x=10000100,y=11001100 (2)对x按位进行取反操作。 10000100=01111011 (3)对x,y按位进行异或操作 10000100 11001100 01001000 (4)所得结果:x=123,xy=72。,【例】位运算测试程序。,/例3-2代码 BitTest.java public class BitTest public static void main(String args) int a=-100,b=57; System.out.println(“a=“+a+“ b=“+b); System.out.println(“a3=“+(a3); /输出a3的结果 System.out.println(“a /输出ab的结果 ,3.4 运算符和表达式,3.4.5 其他运算符及其表达式,1、赋值运算符 赋值运算符分为基本赋值运算符(=)和扩展赋值运算符(+=、=、*=、/=等)两种。 赋值运算符的左边是一个变量,右边是一个表达式。 赋值运算用于给变量赋值,形式如下: 变量名=表达式; 赋值运算的次序是从右向左的,即先计算表达式的值,再将表达式的值赋予变量。,3.4 运算符和表达式,赋值运算符算例,例如: int i=3, j; j=i+2; /结果,j的值是5 i=2*j; /结果,i的值是10 j=j+4; /结果,j的值是9 i-=6; /相当于i=i-6,i的值是4 j/=3 ; /相当于j=j/3,j的值是3,3.4.5 其他运算符及其表达式,2、条件运算符 条件运算符 ? :是三元运算符。 表达式1 ? 表达式2 : 表达式3 如果“表达式1”是关系表达式,计算结果是布尔型。如果“表达式1”值是true, “表达式2”的值是最终整个表达式的值;如果“表达式1”的值是false,“表达式3”的值是最终整个表达式的值。 int rusult,sum=1 rusult= sum=0?1:9,3.4 运算符和表达式,例:声明整形变量 min , x=4, y=20 然后用条件表达式表示取x和y中的较小值赋值给min int min , x=4, y=20 min= (xy)? x : y; /结果:(xy)的值是false,取x的值4作为min的值,条件运算符算例,3.4.5 其他运算符及其表达式,3、 圆括号运算符“()” 用于改变表达式中运算符的运算次序。 先进行括号内的运算,再进行括号外的运算; 在有多层括号的情况下,优先进行最内层括号内的运算,再依次从内向外逐层运算。,3.4 运算符和表达式,4、强制类型转换运算符“(类型)” 自动类型转换的一般原则是位数少的数据类型可以转换为位数多的数据类型 各类型所占用的位数从短到长依次为: byte short char int long float double,3.4 运算符和表达式,不同类型数据的转换规则,4、强制类型转换运算符“(类型)” 自动类型转换例如: int i=3; float j=(float)i; /结果 j=3.0 强制类型转换:当位数多的数据类型向位数少的数据类型转换时,需要使用()进行强制转换。 double i = 50.56; byte j = (byte) i; /结果 j=50 一般地,高级类型(即位数较多的数据类型)转为低级类型(即位数较少的数据类型)时,截断高位内容,因此会导致精度下降,3.4 运算符和表达式,5 其他运算符: 分量运算符“” 下标运算符“” 实例运算符“instance of” 内存分配运算符“new” 方法调用运算符“()”。 表达式的运算按照运算符的优先顺序从高到低进行,同级运算符按其结合方向进行。,3.4 运算符和表达式,表: 运算符的功能及其优先级,3.4 运算符和表达式,回目录,3.5 基本流程控制语句,Java基本流程控制语句: 顺序语句 选择语句 循环语句,语句用来向计算机系统发出操作指令。程序由一系列语句组成。 表达式语句 表达式; 如:total=math+phys+chem; 空语句 ; 复合语句 用 “ ”将多条语句括起来,在语法上作为1条语句使用。如: z=x+y; t=z/10; 方法调用语句 方法名(参数); 如:System.out.println(“Java Language”); 控制语句 完成一定的控制功能,包括顺序结构语句,选择语句、循环语句和转移语句。,语句及程序结构,3.5.1 顺序语句,在程序中,如果语句仅仅为一个赋值表达式或其它表达式,则该语句称为顺序语句 。 顺序结构是最简单的一种程序结构,程序按照语句的书写次序顺序执行,3.5 基本流程控制语句,顺序结构流程图,语句1,语句2,语句n,例: 华氏温度转换为摄氏温度 摄氏温度c和华氏温度f之间的关系为:c=5(f-32)/9,定义摄氏温度c和华氏温度f,c=5(f-32)/9,输出c,f,例: 华氏温度转换为摄氏温度 public class Conversion public static void main(String args) float f, c; f=70.0f; c=5*(f-32)/9; System.out.println(“华氏温度=“+f); System.out.println(“摄氏温度=“+c); ,程序运行结果如下: 华氏温度=70.0 摄氏温度=21.11111,3.5.2 选择语句,选择语句使得程序执行时可以跳过某些语句,而选择执行某些特定的语句。选择语句分为条件语句和多分支语句。 if语句应用在“二选一”的条件下 1. 条件语句 条件语句采用的格式如下: if (布尔表达式) 语句块1; else 语句块2; 其中else语句可以省略,3.5 基本流程控制语句,注意: (1)else语句块可以不写。 (2)如果条件为真时,执行语句块1;如果条件为假时,则执行语句块2。 (3)条件语句if-else可以嵌套成多分支语句。,3.5 基本流程控制语句,if (布尔表达式) 语句 if (布尔表达式) 语句1 else 语句2,if语句,【例3-3】,编写一个条件语句程序。定义一个常量MAX_NUM等于50,如果输入的整数小于常量的值,则向屏幕输出该整数,否则输出该整数大于等于常量MAX_NUM的值。,3.5 基本流程控制语句,/导入所需要的类 import java.util.Scanner; import java.io.*; public class CompareTest public static void main(String args) final int MAX_NUM=50; /定义常量MAX_NUM=50 Scanner s = new Scanner(System.in); System.out.println(“请输入数值x:“); int x = s.nextInt();/Scanner对象的方法nextInt()用于接 收整型数据的输入 /下面用if结构判断x的值是否小于MAX_NUM if(x = “+ MAX_NUM); ,3.5 基本流程控制语句,任务: 给定三个整数,判断是否能构成三角形的3个边长,能则输出三角形边长,否则输出“此三个边不能构成三角形”,定义三个边长a ,b ,c并赋值,输出三角形的周长a+b+c,判断任意两个边是否大于第三边,输出“此三个边不能构成三角形”,public class Triangle public static void main(String args) int a=12, b=10,c=17; if(a+bc ,任务:使用if语句根据月份返回该月份的天数,多路 if语句中可以包含if语句,形成if语句的嵌套。 if(条件表达式1) 语句1 else if(条件表达式2) 语句2 else if(条件表达式n) 语句n else 先判断条件表达式1的值,为true执行语句1,否则逐个其他判读布尔表达式,哪个条件表达式为true执行该条件表达式后面的语句,3.5 基本流程控制语句,任务:使用else if语句根据月份返回该月份的天数,根据不同的税率计算缴税额并输出,定义工资salary并赋值,Salary*0.3,salary50000,10000salary =50000,salary50000,salary50000,Salary*0.3,Salary*0.3,Salary*0.3,import java.io.IOException; import java.util.Scanner; public class Test public static void main(String args) Scanner s = new Scanner(System.in); System.out.println(“请输入工资:“); float salary = s.nextFloat(); if(salary=50000) System.out.println(“你需要缴税 “+salary*0.3); else if(salary10000 ,2. 多分支语句 Java语言提供了多分支语句(switch)来处理 多分支的流程结构。 一般格式为: switch (表达式) case 值1 : case 值2 : case 值3 : 语句1; break; case 值4 : 语句2; break; case 值N : 语句N; break; default :语句N+1; ,3.5 基本流程控制语句,注意: (1)表达式的返回值类型必须是整型或字符型。当用byte、short或char类型时,要进行提升。switch语句不允许使用浮点型或long型表达式。 (2)case子句中的值必须是整型或字符型常量,而且所有case子句中的值应是不同的。 (3)default子句是可选的。 (4) break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。如果出现多个连续不同的case值要执行一组相同操作的情况时,可以不使用break语句。,3.5 基本流程控制语句,【任务】,【例3-4】多路分支程序,实现简易计算器功能,如当输入运算符+、-、*或/时,分别计算10、5两个整数的和、差、积或商 import java.util.Scanner; import java.io.*; public class Calculator public static void main( String args ) int x=10,y=5,z; char ch; /变量ch用来存放从键盘输入的运算符 Scanner s = new Scanner(System.in); System.out.println(“请输入运算符: “); String str = s.nextLine(); /Scanner对象的方法nextLine()接收字符串数据的输入 ch = str.charAt(0); /再提取字符串中第一个字符,即输入的运算符,3.5 基本流程控制语句,switch(ch) case +: z=x+y; System.out.println(x+“ + “+ y + “ = “+z); break; case -: z=x-y; System.out.println(x+“ - “+ y + “ = “+z); break; case *: z=x*y; System.out.println(x+“ * “+ y + “ = “+z); break; case /: z=x/y; System.out.println(x+“ / “+ y + “ = “+z); break; default: System.out.println(“Input Error! “); ,3.5 基本流程控制语句,任务:使用else if语句根据月份返回该月份的天数,任务:使用switch语句根据月份返回该月份的天数,使用switch语句: public class T2 public static void main(String args) int days; System.out.println(“请输入月份“); Scanner s=new Scanner(System.in); int month=s.nextInt(); switch(month) case 2: days = 28; break; case 4: case 6: case 9: case 11: days = 30; break; default: days = 31; System.out.println(month+“月份是“+days+“天“); ,注意,Java不允许将未经初始化的变量用作操作数 方法中的变量的作用域是从该变量说明的地方到包含该说明的语句块的结束处。 同一语句块中不能定义同名的变量,3.5 基本流程控制语句,3.5.3 循环语句,Java中提供的循环语句主要有: while循环 do-while循环 for循环,3.5 基本流程控制语句,1while语句 语句一般格式如下: while (条件表达式) 循环体; ,3.5 基本流程控制语句,while语句流程图,含义:先判断条件,当条件表达式为true时,重复执行循环体, 直到条件表达式为假,退出循环。,【例3-5】求整数110之和,定义整数n=10和累加sum=0,判断n0,sum=sum+n n-,true,false,输出110之和,【例3-5】求整数110之和。,public class NumAdd public static void main( String args ) int n = 10; int sum = 0; /定义变量sum,初值为0 while(n 0) /n0时,累加求和;否则结束循环 sum += n; /将整数数n的值加到sum中 n-; /n的值减1成为下一个整数 System.out.println(“1+2+.+10 = “+sum);/输出累加和 ,3.5 基本流程控制语句,2do-while语句 do-while循环语句一般格式如下: do 循环体 while (条件表达式);,3.5 基本流程控制语句,do-while语句流程图,含义:先执行循环体,然后判断条件,在执行循环体, 直到条件表达式为false,退出循环。,【任务】计算1+3+5+99,定义整数n=1和累加sum=0,判断n100,sum=sum+n n=n+2,true,false,输出1100奇数之和,例:计算1+3+5+99 public class Sum1 public static void main(String args) int n=1, sum=0; do sum=sum+n; n=n+2; while (n100); System.out.println(“1-100的奇数和=“+sum); ,【例3-6】,使用do while循环计算用户输入学生成绩总分平均分。 import java.util.Scanner; public class ChengJi public static void main(String args) int fenshu; /分数 int renshu; /班级人数 int avg; /平均分 int zongfen=0; /总分 String banji; int i = 1; Scanner input = new Scanner(System.in);,3.5 基本流程控制语句,System.out.println(“请输入班级号:“); banji = input.next(); /接受输入的班级号给banji变量 System.out.println(“人数:“); renshu =input.nextInt(); /接受输入的人数给renshu变量 do System.out.println(“请输入“ + i +“人的分数:“); fenshu = input.nextInt();/接受输入的分数给fenshu变量 zongfen = zongfen + fenshu;/分数累加到zongfen变量中 i+; while(i = renshu); avg = zongfen /renshu; /求平均分 System.out.println(banji + “班一共有“+renshu + “人t“ + “共“+ zongfen + “分t“ +“平均分是:“ + avg); ,3.5 基本流程控制语句,运行结果:,3for语句 for语句一般格式如下: for (表达式1; 表达式2;表达式3) 循环体; ,3.5 基本流程控制语句,for语句流程图,for语句的语义是 表达式1:循环初值; 表达式2:布尔表达式,判断循环是否继续循环; 表达式3:修改循环变量值。 先执行表达式1,判断表达式2的值,当布尔表达式2为真时,执行循环体语句,执行表达式3的迭代语句,然后再去判别布尔表达式2的值。直到逻辑表达式的值为假时,循环结束,break语句,break语句可用于三类语句中 一类是switch语句中 一类是for、while及do等循环语句中 在switch语句及循环语句中break的语义是跳过本块中余下的所有语句,转到块尾,执行其后的语句,break语句,循环实际执行了5次,for (int i = 0; i 100; i+) if ( i = 5 ) break; System.out.println(“i= “ + i); ,continue语句,在循环语句中,continue可以立即结束当次循环而执行下一次循环,当然执行前先判断循环条件是否满足,for (int i = 0; i 100; i+) if ( i = 5 ) continue; System.out.println(“i= “ + i); ,循环实际执行了99次,i=5没有输出,【例子】,判断某一个数是否是质数。 判断成为质数的条件: 质数是指除1及自身外,不能被其它数整除的自然数。 算法实现:对于一个自然数k,需要使用2k-1之间的每个整数i进行测试,如果k能被i整除,则k不是质数;如果k不能被所有的整数i整除,则k是质数。 要求:先画出该程序的流程图,然后编写相应代码。,3.5 基本流程控制语句,回目录,【任务】判断某一个数是否是质数,输入数字k,flag=true,判断i=k-1,int i=2,true,false,if (k % i =0) flag=false;break;,i+,输出该数是质数,判断flag=true,输出该数不是质数,true,false,/判断某一个数是否是质数 public class Prime public static void main(String args) int i, k; boolean flag=true; Scanner s = new Scanner(System.in); System.out.println(“请输入一个数字:“); k = s.nextInt(); for (i=2; i=k-1; i+) if (k % i =0) flag=false;break; if (flag) System.out.println(k+“ 是质数“); else System.out.println(k+“不是质数“); ,【例3-7】输出50以内的所有质数。,public class ZhiShu public static void main(String args) int i,j,k; boolean flag; for(i=2;i=50;i+) flag=true; k=i; for(j=2;j=k-1;j+) if(i%j=0) flag=false; break; if(flag) System.out.print(i+“ “); ,3.5 基本流程控制语句,回目录,3.6 综合运用实例,问题描述: 模拟抽奖游戏,实现简单的抽奖功能。运行程序后从键盘输入数字(0-9),如果输入值为5、2或0时,则可显示获得奖品的相关信息;如果输入其它数字则显示“没有奖品”的提示信息。最后通过按任意非数字键加回车可跳出循环,退出程序。 问题实现: 在该实例中定义了类Lottery,在主方法中通过while和switch语句来不断读取并判断输入的字符值,进而完成模拟抽奖的工作。,import java.util.Scanner; public class Lottery public static void main(String args) int in; System.out.println(“请输入数字键(09)抽取大奖!“); System.out.println(“(温馨提示:输入非数字键后可退出该程序)“); Scanner input = new Scanner(System.in); while( input.hasNextInt( ) ) /如果输入值为整数 in= input.nextInt() ; switch (in) ,3.6 综合运用实例,case 0: System.out.println(“恭喜您获得大奖,汽车一辆!“);break; case 2: System.out.println(“恭喜恭喜,您获得到笔记本电脑一台!“); break; case 5: System.out.println(“来了您不用走路回去,送您自行车赛车一辆!“); break; default: System.out.println(“谢谢您的参与,您没有奖品!下次再来吧。“); System.out.println(“感谢您参与抽奖活动!“); ,3.6 综合运用实例,执行结果: 请输入数字键(09)抽取大奖! (温馨提示:输入非数字键后可退出该程序) 0 恭喜您获得大奖,汽车一辆! 1 谢谢您的参与,您没有奖品!下次再来吧。 2 恭喜恭喜,您获得到笔记本电脑一台! 5 来了您不用走路回去,送您自行车赛

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论