Java基础 | 流程控制
2017-03-21 22:37
33 查看
Java提供了两种基本的流程控制结构:分支结构和循环结构.其中分支结构用于实现根据条件来选择性的执行某段代码,循环结构则用于根据循环条件重复执行某段代码.
在if后只能是逻辑表达式,即只能返回
代码块只有一条语句时,可以省略花括号,但是为了减少错误和代码的可读性,不建议这样做,
switch语句后的控制表达式的数据类型可以是byte,short,char,int四种整数类型,枚举类型和java.lang.String类型(1.7才允许),不能是boolean类型
除了default之外,每一个case最后都必须是break;这是由switch语句的运行流程决定的:switch语句会先求出表达式的值,然后与case后的标签进行比较,一旦遇到相等的值,程序就开始这个case后的代码,不在判断后面的case时候匹配,除非遇到break才会结束.
先对循环条件求值,如果等于
先执行初始化语句(只执行一次),再对循环条件进行判断,若满足则执行循环体.循环体执行结束后,执行循环迭代语句.因此对于for循环,循环条件总比循环体多执行一次.
因为for循环的迭代语句没有和循环体放在一起.所以与while和do while不同的是:执行循环体时遇到continue语句结束本次循环,迭代语句也依然会执行.
遇到break语句时将会结束break所在的循环.
如果要结束更外层的循环,则需要在break后添加标签
当i等于7时,后面的打印语句将不会被执行.continue也可是在后面添加标签忽略跟外层的本次循环,用法与break相似.
1. 分支结构
Java提供了两种分支控制结构:if语句和switch语句,其中if语句使用布尔表达式或者布尔值作为分支条件来进行分支控制;而switch语句则用于对多个整型值进行匹配,从而实现分支控制.1.1 if条件语句
if(){ }else if(){ } ... else { }
在if后只能是逻辑表达式,即只能返回
ture或者
false;
代码块只有一条语句时,可以省略花括号,但是为了减少错误和代码的可读性,不建议这样做,
1.2 switch分支语句
switch由一个控制语句和多个case标签组成.switch(expression){ case condition1 : statement(s) break; case condition2 : statement(s) break; case condition3 : statement(s) break; default: statement(s) }
switch语句后的控制表达式的数据类型可以是byte,short,char,int四种整数类型,枚举类型和java.lang.String类型(1.7才允许),不能是boolean类型
除了default之外,每一个case最后都必须是break;这是由switch语句的运行流程决定的:switch语句会先求出表达式的值,然后与case后的标签进行比较,一旦遇到相等的值,程序就开始这个case后的代码,不在判断后面的case时候匹配,除非遇到break才会结束.
2. 循环结构
2.1 while循环语句
int count = 5; while (count < 10){ System.out.println(count); count++; }
先对循环条件求值,如果等于
true则运行循环部分.
2.2 do while循环语句
do while循环语句与while语句的区别是:do while语句会先执行循环部分,然后才对循环条件进行判断,如果为真则继续执行下一次循环.所以do while最少也会执行一次.int count = 5; do{ System.out.println(count); }while (count < 10); //必须加分号.
2.3 for循环
for循环更简洁,更常用.大部分情况下可以代替while 循环和do while循环.for(int i = 5;i<10;i++){ System.out.println(count); }
先执行初始化语句(只执行一次),再对循环条件进行判断,若满足则执行循环体.循环体执行结束后,执行循环迭代语句.因此对于for循环,循环条件总比循环体多执行一次.
因为for循环的迭代语句没有和循环体放在一起.所以与while和do while不同的是:执行循环体时遇到continue语句结束本次循环,迭代语句也依然会执行.
3. 控制循环结构
3.1 使用break结束循环
for(int i = 5;i<10;i++){ System.out.println(count); if(i == 7){ break; } }
遇到break语句时将会结束break所在的循环.
如果要结束更外层的循环,则需要在break后添加标签
//外层循环,outer作为标识 outer: for(int i = 0;i<10;i++){ //内层循环 for(int j = 0;i<10;i++){ System.out.println(count); if(i == 7){ break outer; //跳出outer所标示的循环 } } }
3.2 使用continue忽略本次循环剩下的语句
for(int i = 5;i<10;i++){ if(i == 7){ continue; } System.out.println(count); }
当i等于7时,后面的打印语句将不会被执行.continue也可是在后面添加标签忽略跟外层的本次循环,用法与break相似.
3.3 使用return结束方法
return的作用是结束方法.而基本所有的循环都被放在方法中执行,因此return语句也可以结束循环4. 实践
4.1 九九乘法表
for (int i = 1; i<10 ; i++) { for (int j = 1; j < i+1; j++) { System.out.print(i +" * "+ j + " = " + i*j+" "); } System.out.println(""); }
4.2 冒泡排序
public static void main(String[] args) { int[] arr = {2, 34, 56, 7, 13, 5, 1}; int a = arr[0]; for (int i = arr.length - 1; i>0 ; i--) { for (int j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { a = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = a; } } } System.out.println(Arrays.toString(arr)); //[1, 2, 5, 7, 13, 34, 56] }
4.3 菱形
for (int i = 0; i < 2 * n - 1; i++) { for (int j = 0; j < 2 * n - 1; j++) { if (i < n) { if (j >= n - i - 1 && j < n + i) { System.out.print('*'); } else { System.out.print(' '); } } else { if (j >= i - n + 1 && j < 3 * n - i - 2) { System.out.print('*'); } else { System.out.print(' '); } } } System.out.print("\n"); }
相关文章推荐
- Java学习之旅基础知识篇:数据类型及流程控制
- 黑马程序员_Java基础_常用基础内容(进制转换、基本数据类型、运算符、流程控制语句等)
- 黑马程序员--JAVA基础之流程控制语句
- java 基础 流程控制
- 【黑马程序员】Java基础02:Java中的程序流程控制结构
- 黑马程序员Java基础之流程控制(control)
- 黑马程序员_java基础复习三流程控制
- JAVA基础知识学习笔记(流程控制、数组)
- 黑马程序员-Java基础知识预备之Java流程控制与数组
- 《黑马程序员》 java基础巩固之流程控制中的循环结构
- Java语言基础——分支流程控制if switch
- JAVA基础学习篇----《thinking in java》第三章:控制程序流程
- 黑马程序员_java基础(2) 流程控制语句&函数与数组
- java 从零开始,学习笔记之基础入门<运算符表达式和流程控制>(六)
- (java基础)java的流程控制语句b
- Java基础_流程控制语句
- 黑马程序员_java的语言基础组成进阶(对第三课程序流程控制的总结)
- 黑马程序员_Java基础(流程控制、函数、数组)
- 黑马程序员--Java基础--03流程控制
- 黑马程序员_java语法基础【2】(流程控制语句)