(1)分支结构——Switch···case 语法: switch(expression){ case 1: //代码 break; case 2: //代码 break; ... default: }
Java7之前 expression的类型只支持byte、short、int、charJava7之后添加了String和枚举switch分支语句的执行是先对expression求值,然后依次匹配case后的值,遇到匹配的值即执行对应的执行体如果所有的case标签后的值都不与expression表达式的值相等,则执行default标签后的代码块。注意考点:case后语句满足条件时继续执行、直到遇到break语句时再输出int i=3;switch(i) {case 1:System.out.println(1);case 2:System.out.println(2);case 3:System.out.println(3);case 4:System.out.println(4);break;default:System.out.println("没有匹配的值");} (2)循环结构 循环结构是指在满足某个循环条件的情况下,反复执行同一段代码,直到不满足循环条件为止。初始化语句:一个或多个语句,这些语句用来完成一些初始化工作,在循环开始之前执行循环条件:循环条件是一个布尔表达式,该表达式决定是否执行循环体循环体:这部分是循环的主题,如果循环条件允许,该代码块将被反复执行,如果这个代码块只有一条语句,则代码块的花括号可以省略。迭代语句:这部分在一次循环体执行结束后执行,在循环条件求值前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。for :for(循环变量;循环条件;修改循环变量){//循环体} for(::)是合法的 while:while(循环条件){//循环体} do...while: do{//循环体}while(循环条件);注意:while和do while的区别:while语句中先执行判断语句,为真执行循环体;do while 中先执行一遍循环体再执行判断,判断为真执行循环体,为假时跳出循环。 (3)使用break结束循环使用break完全结束一个循环,跳出循环体,不管是哪种循环,一旦循环体中遇到break,系统将完全结束该循环,开始执行循环结构以后的代码。 •package cn.bytecollege; public class ForDemo { public static void main(String[] args) {// TODO Auto-generated method stub int i;for(i = 0;i<=5;i++) {if(i==3) {System.out.print("");break;}System.out.println(i);//0 1 2} }}当变量i的值变为3的时候,满足if条件判断,此时进入if分支结构,进入以后遇到break,此时跳出循环。break可以视为中断循环,即使循环还没有结束,也再不循环,直接结束,当然break也可以跳出多层循环。 (4)使用continue跳过此次循环continue的功能和break有点类似,区别是continue只是跳出此次循环,继续执行剩下的循环,并不是完全终止循环。package cn.bytecollege; public class ForDemo { public static void main(String[] args) {// TODO Auto-generated method stub int i;for(i = 0;i<=5;i++) {if(i==3) {System.out.print("");continue;}System.out.println(i);//0 1 2 4 5}}} (5)循环嵌套当程序遇到循环嵌套是,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行,只是内层循环需要反复执行自己的循环体而已。当内层循环执行结束,且完成循环的循环体执行结束时,在再次计算外层循环的循环条件,决定是否再次执行外层循环的循环体。如:package cn.bytecollege; import java.util.Scanner; public class TriangleDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入行数:");int number = scanner.nextInt();scanner.close(); System.out.println();for(int i = 1;i<=number;i++) {for(int k = 0;k<number-i;k++) {System.out.print(" ");} for(int j = 1;j<=2*i-1;j++) { System.out.print("*");}System.out.println();}System.out.println();}}(6)数组概念:具有相同数据类型按照一定次序排练的一组数据的集合。 1. 存放在一个数组的元素必须数据类型相同,不能把不同类型的元素放进同一个数组。2. 按照一定次序排列,数组中的元素是有序的,这句话包含两层含义,第一:元素是有顺序的。也可以理解为每个数组元素都有一个编号,这个编号是连续的(我们通常把这个编号叫做数组的下标或者索引);第二:元素存放的顺序和取出的顺序是一致的,也就是说存放元素的顺序是10,20,30,40。那么取出的顺序也是10,20,30,40。3. 一组数据,一组数据是指元素的个数可以是0个,也可以是1个,也可以是多个,Java中允许数组中有0个元素,也就是我们所说的空数组。 (7)数组的声明数据类型[] 数组名;数据类型 数组名[];//通常不使用,容易造成混淆(8)数组的初始化 int[] ary = new int[] {1,2,3};//静态初始化int[] ary2 = {2,2,3};//静态初始化 int[] ary3 = new int[3];//动态初始化int[3] ary4 = new int[] {1,2,3};//错误示例1:int[] ary5 = new int[3] {1,2,3};//错误示例2: 初始化完成后数组在内存中所占的空间将固定下来,数组的大小将不会被改变数组完成初始化后会在栈内存中开辟空间,其中存储的是堆内存中数组的首地址。 (9)数组的默认值当数组动态初始化后,JVM会给数组的元素赋默认值,规则如下:1. 整型的数组,默认值为0;2. 浮点型的数组,默认值为0.0;3. char类型的数组,默认值为'\u0000';4. boolean类型的数组,默认值为false5. 引用类型的数组,默认值为null//null指没有引用指向堆里面的任何区域 (10)冒泡排序算法 package cn.bytecollege; import java.util.Arrays; public class BubbleSort { public static void main(String[] args) {// TODO Auto-generated method stub int [] sortArray = {3,8,5,7,2,1};for(int i = 0;i<sortArray.length-1;i++) {for(int j = 0;j<sortArray.length-1-i;j++) {if(sortArray[j]>sortArray[j+1]) {int temp = sortArray[j];sortArray[j] = sortArray[j+1];sortArray[j+1] = temp;}}}System.out.println(Arrays.toString(sortArray));//[1, 2, 3, 5, 7, 8]} }
今天