Java流程控制和数组.doc

上传人:rrsccc 文档编号:8767864 上传时间:2021-01-14 格式:DOC 页数:31 大小:300KB
返回 下载 相关 举报
Java流程控制和数组.doc_第1页
第1页 / 共31页
Java流程控制和数组.doc_第2页
第2页 / 共31页
Java流程控制和数组.doc_第3页
第3页 / 共31页
Java流程控制和数组.doc_第4页
第4页 / 共31页
Java流程控制和数组.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Java流程控制和数组.doc》由会员分享,可在线阅读,更多相关《Java流程控制和数组.doc(31页珍藏版)》请在三一文库上搜索。

1、流程控制 (一) 分支控制 分支控制主要包括两种语句if和switch语句。if有三种形式,一种是if,if else 和嵌套的if语句。在这里先看一下if 的第一个形式。 htmlview plaincopyprint?1 if(表达式) 2 语句1 ; 3 语句2 ; 4 5 if中当表达式的值为true时,则执行花括号里面的语句。反之则不执行里面的内容。值得注意的是if括号内的表达式为 6 逻辑表达式和关系表达式。例如: 7 int a = 3 ; 8 int b = 2 ; 9 if(ab) 10 a = a-b; 11 12 /* 13 上面的if语句也可以写成 14 if(ab)

2、15 a = a- b; 16 */ if(表达式) 语句1 ; 语句2 ;if中当表达式的值为true时,则执行花括号里面的语句。反之则不执行里面的内容。值得注意的是if括号内的表达式为逻辑表达式和关系表达式。例如:int a = 3 ;int b = 2 ;if(ab) a = a-b;/* 上面的if语句也可以写成 if(ab) a = a- b;*/ 简单的if语句的流程图(2) if()else if else的形式中在判断if后的表达式为true则运行if后面的语句反之运行else的语句中的内容。格式如下: if(表达式) 语句1 ; 语句2 ; else if(表达式2) 语句1

3、 ; 语句2 ; else.(3)嵌套的if 。else 语句if .else 是可以嵌套使用的,即是一个if 。else中嵌套一个或者多个if。else语句,格式如下:if(表达式1) if(表达式2) 语句1;。 else 。 二 switch 多分支选择语句 switch是多分支语句,它可以根据表达式的不同结果选择不同的语句进行执行。值得注意的是switch的表达式类型只能 char,byte,short或者int。格式如下: switch(表达式1) case value1 : 语句1 ;break; case value2 : 语句2 ;break; case value3 : 语句

4、3 ; break; default : 语句4; 在switch中根据表达式的结果来与下面的case value的值对应则执行对应的语句。反之没有执行default中的语句,一个switch中只准有一个default语句。同时在case value中必须加入break语句。switch的流程图如下: 在这里来举一个例子来练习一下switch语句,主要是从从键盘总输入1-7 ,判断是周几。代码如下htmlview plaincopyprint?17 import java.util.Scanner; 18 public class Test5 19 public static void mai

5、n(String args) 20 /* 21 * 1.scanner 是从文本中有计划的读取数据,使用时需要引入java.utl.Scanner包 22 * 23 */ 24 Scanner input = new Scanner(System.in); 25 System.out.println(请输入1-7之内的数字!); 26 String a = input.next(); 27 int b = Integer.parseInt(a);/把字符转换成整型 28 switch(b) 29 case 1 : 30 System.out.println(今天是星期一!); 31 break

6、; 32 case 2 : 33 System.out.println(今天是星期二!); 34 break; 35 case 3 : 36 System.out.println(今天是星期三!); 37 break; 38 case 4 : 39 System.out.println(今天是星期四!); 40 break; 41 case 5 : 42 System.out.println(今天是星期五!); 43 break; 44 case 6 : 45 System.out.println(今天是星期六!); 46 break; 47 case 7 : 48 System.out.pr

7、intln(今天是星期日!); 49 break; 50 default : 51 System.out.println(输入的数字不合法); 52 53 54 import java.util.Scanner;public class Test5 public static void main(String args) /* * 1.scanner 是从文本中有计划的读取数据,使用时需要引入java.utl.Scanner包 * */ Scanner input = new Scanner(System.in); System.out.println(请输入1-7之内的数字!); Strin

8、g a = input.next(); int b = Integer.parseInt(a);/把字符转换成整型 switch(b) case 1 : System.out.println(今天是星期一!); break; case 2 : System.out.println(今天是星期二!); break; case 3 : System.out.println(今天是星期三!); break; case 4 : System.out.println(今天是星期四!); break; case 5 : System.out.println(今天是星期五!); break; case 6

9、: System.out.println(今天是星期六!); break; case 7 : System.out.println(今天是星期日!); break; default : System.out.println(输入的数字不合法); 三 循环分支结构 htmlview plaincopyprint?55 在java中的循环语句有普通的for循环和for/in循环,dowhile ,while .需要注意的是for/in是java5.0新增加的一种循环方式,也称为增强的for循环。在这里来介绍一下for循环。 56 For循环 57 普通的for循环的格式为: 58 For(初始化条

10、件;表达式2;步长) 59 60 语句1; 61 语句2 ; 62 63 初始化条件主要是对于对于值的赋值 ,表达式用于循环次数的判定,步长主要作用在于数的增长,相当于一个加法器或者减法器,可以递增也可以递减。For循环的流程图如下: 64 65 在for当表达式为true时,才执行循环语句,false时跳出for循环。For的表达式必须为关系表达式或者逻辑表达式。在for循环中可以对多个变了进行赋值,但是需要注意对于多个赋值必须用,隔开,不然则错误。例如: 66 for(int i = 1,j = 2 ;i8;i+) 67 语句1 ; 68 语句2 ; 69 70 而下面的这些都是错误的。

11、71 编译错误,不能为表里个别定义数据类型 72 for(int i = 1,int j = 2 ;i8;i+) 73 语句1 ; 74 语句2 ; 75 76 编译错误,两个变量的数据类型不能不相同 77 for(int i = 1,long = 2 ;i8;i+) 78 语句1 ; 79 语句2 ; 80 81 编译错误,j也需要在外部定义 82 int i = 1 ; 83 for( i = 1,j = 2 ;i8;i+) 84 语句1 ; 85 语句2 ; 86 87 在java中的循环语句有普通的for循环和for/in循环,dowhile ,while .需要注意的是for/in是

12、java5.0新增加的一种循环方式,也称为增强的for循环。在这里来介绍一下for循环。 For循环普通的for循环的格式为: For(初始化条件;表达式2;步长) 语句1; 语句2 ; 初始化条件主要是对于对于值的赋值 ,表达式用于循环次数的判定,步长主要作用在于数的增长,相当于一个加法器或者减法器,可以递增也可以递减。For循环的流程图如下: 在for当表达式为true时,才执行循环语句,false时跳出for循环。For的表达式必须为关系表达式或者逻辑表达式。在for循环中可以对多个变了进行赋值,但是需要注意对于多个赋值必须用,隔开,不然则错误。例如: for(int i = 1,j =

13、 2 ;i8;i+) 语句1 ; 语句2 ; 而下面的这些都是错误的。 编译错误,不能为表里个别定义数据类型 for(int i = 1,int j = 2 ;i8;i+) 语句1 ; 语句2 ; 编译错误,两个变量的数据类型不能不相同 for(int i = 1,long = 2 ;i8;i+) 语句1 ; 语句2 ; 编译错误,j也需要在外部定义 int i = 1 ; for( i = 1,j = 2 ;i8;i+) 语句1 ; 语句2 ; while结构 while语句 while 的格式如下: while(条件表达式) 循环语句; 。 while中当条件语句为true时,则执行循环语

14、句,当为false则退出。流程图如下: do while语句 do while的结构是 do.while(.);中执行过是先执行一次循环语句,在while 中的条件表达式为true时则继续执行循环语句,为false时则退出。在这里需要注意的是在while后必须加上;流程图如下: 跳转语句 四 跳转语句 在java中可以通过跳转语句来调出循环语句的控制。跳转语句有continue和break。goto也是跳转语句,但是在java中不经常使用。但是也可以通过continue和break 和标号的使用来实现goto语句的功能。下面来介绍continue和break的使用。 continue语句 :跳

15、转语句 continue语句的功能是终止这次循环,调成循环来执行下一次循环。下面用一个例子来看一下:htmlview plaincopyprint?88 public class Test4 89 90 /* 91 * 打印出1-100以内的可以被六整除的数字,以每行五个打印 92 */ 93 public static void main(String args) 94 95 int n = 0 ; 96 for(int i = 1;i=100;i+) 97 98 if(i%6!=0)/判断n是否可以被6整除,不可以调成这次循环,执行下一次循环 99 continue; 100 n+ ; /

16、一行打印五个数字,超过五个数字换行 101 if(n%5=0) 102 System.out.println(i+t+n); 103 else 104 System.out.print(i+t); 105 106 107 public class Test4 /* * 打印出1-100以内的可以被六整除的数字,以每行五个打印 */ public static void main(String args) int n = 0 ; for(int i = 1;i=100;i+) if(i%6!=0)/判断n是否可以被6整除,不可以调成这次循环,执行下一次循环 continue; n+ ; /一行打

17、印五个数字,超过五个数字换行 if(n%5=0) System.out.println(i+t+n); else System.out.print(i+t); 运行结果如图:continue还有一种形式,continue和标号outerloop,这样使用起来更加简单。例如如下:htmlview plaincopyprint?108 public class Test4 109 110 /* 111 * 打印出1-100以内的可以被六整除的数字,以每行五个打印 112 */ 113 public static void main(String args) 114 int n = 0 ; 115

18、outerLoop: 116 for(int i = 1;i=100;i+) 117 if(i%6!=0) continue outerLoop; 118 if(n%5=0) 119 System.out.println(i+t); 120 else 121 System.out.print(i+t); 122 123 124 125 public class Test4 /* * 打印出1-100以内的可以被六整除的数字,以每行五个打印 */ public static void main(String args) int n = 0 ; outerLoop: for(int i = 1;i

19、=100;i+) if(i%6!=0) continue outerLoop; if(n%5=0) System.out.println(i+t); else System.out.print(i+t); break语句:退出当前所在的循环 break语句可以在循环为执行完之前,退出当前所在的循环就可以使用break。具体的例子你可以看一下switch语句中的使用。在这里就不仔细介绍了。 数组 数组一般用于对于相同类型数据的处理。数组即是由一组相同类型的变量组成的数据类型,数组中的元素可以通过标下标来实现访问。数组由复杂程度分为一维数组,二维数组以及多位数组。 一:一维数组 数组的使用需要两步

20、: 第一:对于数组的声明 第二:分配内存 数组的声明格式如下: 数组类型 数组名 ; 数组类型 可以为基本的数据类型和字符类型。数组名主要是用来统一这个相同类型的数组的名称,命名的规则和标量的规则一样,在这里建议用有意义的名字。 1.一维数组的声明 一维数组的声明有两种形式,分别为 数组类型 数组名 ; 数组类型 数组名。这两个定义方法是等价的。 需要注意的是在数组的声明的过程中不能在 中填写数组 的长度,不然会编译错误。例如 int array 10 ; 内存的分配 在数组声明后,只有对内存进行了分配才可以进行数组的使用。对于内存的分配使用new关键字来实现.例如: int a = new

21、int 3 ;/定义一个数据类型为int,长度为3的数组 int a = new int 3 ; /定义一个数据类型为int,长度为3的数组 对于数组也可以使用下列的方式进行声明 。如 int a = 1,2,3,4,5 ;/声明一个int类型的数组,数组的长度为5,并且对于进行了赋值。 2一维数组的引用 数组是一个引用类型的变量,对于数组的元素可以通过下标来引用。格式如下:array index ;index代表的是数组的下标,而数组的下标从0开始。举例: htmlview plaincopyprint?126 public class TestArray 127 128 public st

22、atic void main(String args) 129 130 /定义一个长度为5的int类型数组 131 int array = new int 5 ;/另一种形式 int array = 1,2,3,4,5; 132 133 /数组的赋值 134 array0 = 1; 135 array1 = 2; 136 array2 = 3; 137 array3 = 4; 138 array4 = 5; 139 /* 140 循环打印数组内的值 141 array.length 代表的是数组的长度 142 */ 143 for(int i=0;iarray.length;i+) 144 S

23、ystem.out.println(arrayi); 145 146 147 public class TestArray public static void main(String args) /定义一个长度为5的int类型数组 int array = new int 5 ;/另一种形式 int array = 1,2,3,4,5; /数组的赋值 array0 = 1; array1 = 2; array2 = 3; array3 = 4; array4 = 5; /* 循环打印数组内的值 array.length 代表的是数组的长度 */ for(int i=0;iarray.lengt

24、h;i+) System.out.println(arrayi); 二 :二维数组 二维数组的声明和一维数组的类似。格式如下: 数组类型 数组名称 ; 初始化的格式为 数据类型 数组名整常量表达式 整常量表达式= 初始化数据 ;二维数组的初始化的格式有如下的几种方式: 分行进行初始化 int a23=1,2,3,4,5,6;在 内部再用 把各行分开,第一对 中的初值1,2,3是0行的3个元素的初值。第二对 中的初值4,5,6是1行的3个元素的初值。相当于执行如下语句: int a23; a00=1;a01=2;a02=3;a10=4;a11=5;a12=6; 注意,初始化的数据个数不能超过数组

25、元素的个数,否则出错。 不分行的初始化 int a23= 1,2,3,4,5,6;把 中的数据依次赋给a数组各元素(按行赋值)。即a00=1; a01=2;a02=3;a10=4;a11=5;a12=6; 为部分数组元素初始化 static int a23=1,2,4;第一行只有2个初值,按顺序分别赋给a00和a01;第二行的初值4赋给a10。由于存储类型是static,故其它数组元素的初值为0。注:某些C语言系统(如:Turbo C)中,存储类型不是static的变量或数组的初值也是0。 static int a23= 1,2;只有2个初值,即a00=1,a01=2,其余数组元素的初值均为0

26、。 可以省略第一维的定义,但不能省略第二维的定义。系统根据初始化的数据个数和第2维的长度可以确定第一维的长度。 int a 3= 1,2,3,4,5,6;a数组的第一维的定义被省略,初始化数据共6个,第二维的长度为3,即每行3个数,所以a数组的第一维是2。一般,省略第一维的定义时,第一维的大小按如下规则确定: 初值个数能被第二维整除,所得的商就是第一维的大小;若不能整除,则第一维的大小为商再加1。例如,int a 3= 1,2,3,4;等价于:int a23= 1,2,3,4;若分行初始化,也可以省略第一维的定义。下列的数组定义中有两对 ,已经表示a数组有两行。 static int a 3=

27、1,2,4; 举例如下: 1.二维数组的初始化以及遍历二维数组的值,htmlview plaincopyprint?148 public class TestArray 149 public static void main(String args) 150 /* 151 * 定义了一个一个数组类型为int 数组名为a的二维数组, 二维数组有可以存储6个int类型的数据 152 */ 153 int a = new int23; 154 /* 155 * 对于二维数组a初始化赋值 另一种直接赋值 int a = 1,2,3,4,5,6; 156 */ 157 a00 = 1; 158 a01

28、= 2; 159 a02 = 3; 160 a10 = 4; 161 a11 = 5; 162 a12 = 6; 163 /* 164 * 循环打印出二维数组的数据 165 */ 166 for (int i = 0; i a.length; i+) 167 /for循环中是输出第一行的数据ai.length代表的是第一行的长度 168 for(int j = 0 ;jai.length;j+) 169 System.out.print(aij+t); 170 171 System.out.println(n); 172 173 174 175 public class TestArray p

29、ublic static void main(String args) /* * 定义了一个一个数组类型为int 数组名为a的二维数组, 二维数组有可以存储6个int类型的数据 */ int a = new int23; /* * 对于二维数组a初始化赋值 另一种直接赋值 int a = 1,2,3,4,5,6; */ a00 = 1; a01 = 2; a02 = 3; a10 = 4; a11 = 5; a12 = 6; /* * 循环打印出二维数组的数据 */ for (int i = 0; i a.length; i+) /for循环中是输出第一行的数据ai.length代表的是第一行

30、的长度 for(int j = 0 ;jai.length;j+) System.out.print(aij+t); System.out.println(n); 2.二维数组的应用,主要实现的是一个班级里30个人,十门科目的成绩,通过random来实现赋值,打印出班级每一个人的科目的成绩以及总分和平均分。 htmlview plaincopyprint?176 public class TestArray 177 public static void main(String args) 178 / 定义一个二维数组,30个学生,10个科目的成绩 179 int score = new int3010; 180 / 使用random的随机产生50 - 100 的数字 181 for (int i = 0; i score.length; i+) 182 for (int j = 0; j scorei.length; j+) 183 scoreij = (int) (40 * Math.random() + 40); 184 185

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1