黑马程序员--Java编程之代码执行的流程控制
来源:互联网 发布:长郡 雅礼 知乎 编辑:程序博客网 时间:2024/06/11 17:03
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制的语句分为三种:①顺序结构;②选择结构;③循环结构
1.顺序结构:
是程序中最简单最基本的流程控制,没有特定的语法,按照代码的先后顺序,从上到下依次执行,程序中大多数的代码都是这样执行的。
2.选择结构:
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。选择结构有两种:if语句;switch语句。
2.1 if语句
if语句有三种格式:
①单分支:
if(关系表达式){ 语句体 }
关系表达式为一个布尔值,如果该值为true则执行大括号里面的语句体,否则不执行;
②双分支:
if(关系表达式){ 语句体1 }else{ 语句体2 }
如果关系表达式的值为true则执行语句体1,否则执行语句体2
③多分支
if(关系表达式1){ 语句体1 }else if(关系表达式2){ 语句体2 }else if(......){ ...... }else{ 语句体n }
顺序判断关系表达式,如果遇到关系表达式的值为true,则执行该关系表达式对应的语句体,如果关系表达式都不为真,则执行最后的else所对应的语句体
2.2 switch语句
switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... ... default: 语句体n+1; break; }
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
switch语句的执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
3.循环结构
可以在满足循环条件的情况下,反复执行某一段代码。这段被重复执行的代码被称为循环体语句。
当反复执行这个循环体时,需要在合适的时候把循环判断条件改为false,从而结束循环,否则循环将一直继续执行,编程死循环。
循环结构有三种:for循环,while循环,do while循环
3.1 for循环
基本结构:
for(初始化语句;判断条件语句;控制条件语句){ 循环语句体; }
执行流程:
1:执行初始化语句(只做一次);
2:执行判断条件语句,看其结果是true还是false(布尔值);
如果是false,循环结束;
如果是true,继续执行;
3:执行循环体语句;
4:执行控制条件语句;
5:回到2继续。
3.2 while循环
基本结构:
初始化语句; while(判断条件语句(布尔值)){ 循环体语句; 控制条件语句; }
执行流程:
1.执行初始化语句;
2.执行判断条件语句,看其结果是true还是false(布尔值);
如果是false,循环结束;
如果是true,继续执行;
3:执行循环体语句;
4:执行控制条件语句;
5:回到2继续。
3.3 do while循环
基本结构:
初始化语句; do{ 循环体语句; 控制条件语句; }while(判断条件语句);
执行流程:
1.执行初始化语句;
2.执行循环体语句;
3.执行控制条件语句;
4.执行判断条件语句,看其结果是true还是false(布尔值);
如果是false,循环结束;
如果是true,回到2继续。
3.4 三种循环的区别
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
如果不知道循环次数,使用while循环,而不能使用for循环
4.典型练习题
4.1 在控制台显示出99乘法表
public class Demo1{ public static void main(String[] args){ for(int i = 1 ; i <= 9; i++){ for(int j = 1 ; j <= i ; j++){ System.out.print(j + "*" + i + "=" + j*i + "\t"); } System.out.println(); } }}
4.2 键盘录入月份,显示该月份对应的季节
public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入月份(1-12):"); int month = sc.nextInt(); switch(month){ case 3: case 4: case 5: System.out.println("春季"); break; case 6: case 7: case 8: System.out.println("夏季"); break; case 9: case 10: case 11: System.out.println("秋季"); break; case 12: case 1: case 2: System.out.println("冬季"); break; default: System.out.println("请输入1-12的数字"); } }}
- 黑马程序员--Java编程之代码执行的流程控制
- java编程思想之控制执行流程
- java编程思想之控制执行流程
- 黑马程序员Java基础之流程控制(control)
- 黑马程序员--JAVA基础之流程控制语句
- 黑马程序员----java基础之流程控制语句
- 黑马程序员--java语言基础之--流程控制和函数
- 黑马程序员--java基础之方法流程控制总结
- 黑马程序员-JAVA编程流程
- 重读《Java编程思想》之三:控制执行流程
- java之控制执行流程
- 黑马程序员---C语言之流程控制
- 黑马程序员--C语言之流程控制
- 黑马程序员--04 JAVA流程控制语句
- 黑马程序员 Java基础(流程控制语句)
- 黑马程序员-----java 流程控制语句
- 黑马程序员--Java基础--03流程控制
- 黑马程序员 Java基础<三> 控制流程
- Android下setLatestEventInfo警告、Handler警告、SimpleDateFormat警告
- $.ajax()参数列表等
- Java编程艺术第三章
- The archive :xxx.jar which is referenced by the classpath, does not exist
- class专属常量
- 黑马程序员--Java编程之代码执行的流程控制
- 类的实例化的过程及相关概念
- 关于去掉a标签点击后的虚线框问题
- 写一本技术书能赚多少钱
- 一句话评论设计模式六大原则
- java线程wait,notify,yield,join方法
- linux rhel 中QT的安装配置
- redis在linux中安装,java端代码jedis和jedisPool
- datanode 出来了,master:18088也可以啦 但是pi 运行不出来