流程控制

流程控制

流程控制语句:

顺序结构:(写在前面的先执行,后面的后执行);
选择结构:(分支结构)[if 语句 switch 语句]
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,
逻辑运算的结果有两个(true,false)所以产生选择。按照不同的选择执行不同的代码
第一种格式:
if(关系表达式){

语句体;

}
执行流程:
具体判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

if语句的注意事项:
A:比较表达式无论简单还是复杂。结果必须是Boolean类型
B:if语句控制的语句体,如果只有一条语句,则大括号可以省略,如果是多条语句,则不能省略,建议都不要省略。
C:一般来说,有左大括号就没有分号,有分号就没有左大括号

第二种格式:
if(关系表达式){

语句体1;

}else{

语句体2;

}
执行流程:
首先判断关系表达式看其表达结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
注意:else后面没有比较表达式,只有if后面有比较表达式

if语句的第二种格式和三目运算符的区别与联系:
三元的都可以用if语句的第二种结构成立
if语句的语句体中有输出语句时,不能用三元运算符(因为三元运算符是运算符,运算符操作完应该有一个结果,而不是一个输出)
第三种格式:(应用举例 成绩划分)
if(关系表达式1){

语句体1;

}else if(关系表达式2){

语句体2;

}

...

else{

语句体n+1;

}
执行流程:
首先计算表达式1看其返回值是true还是false
如果true,执行语句体1,if语句结束;
如果false,接着执行比较表达式2,看其返回值是true还是false

如果都是false,就执行语句体n+1。

if语句的三种格式:

第一种:适合做单个判断
第二种:适合做两个判断
第三种:适合做多个判断
if 语句的使用场景:
A:针对表达式是一个Boolean类型的判断
B:针对一个范围的判断

switch 语句
switch(表达式){

case 值1:《case后面是冒号》

语句体1;

break;

case值2:

语句体2;

break;

...
default:

语句N+1;

break;

}
switch 语句 b n
表达式的取值(byte,short,int,char)

JDK5以后可以是枚举
JDK7以后可以是String

执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束
最后,如果所有的case都和表达式的值不匹配,就会执行default语句部分,然后程序结束
注意:
A:遇到左大括号缩进一个tab的位置
B:关联不是很大的语句间空行
if语句和switch语句,两种选择语句的使用场景
if语句和switch语句,两种选择语句的使用场景

if:
A:针对结果是Boolean类型的选择
B:针对一个范围的判断
C:针对几个常量值的判断
switch :
A:针对几个常量值的判断

循环结构

循环语句能在满足循环条件的情况下,反复执行某一段代码。这段被重复执行的代码被称为循环体语句,在反复执行循环体时,需要在合适的时候把循环判断条件修改为false从而结束循环,否则会形成死循环

循环语句的组成:

初始化语句:
一条或者多条语句,这些语句完成一些初始化操作;
判断条件语句:
一个Boolean表达式,这个表达式决定是否执行循环体
循环体语句:
这个部分是循环语句,也是我们要多次做的事
控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行,通过用于控制循环条件中的变量,使得循环在合适的时候结束

for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句){

循环体语句;

}
执行流程:
A执行初始化语句
B执行判断条件语句,看其结果是true还是false

   如果是false,循环结束

   如果是true,继续执行

C 执行循环体语句
D 执行控制条件语句
E 回到B执行
for循环的注意事项:(建议,规范)
判断条件语句的结果是一个Boolean类型
循环体语句如果是一条语句,大括号可以省略。如果是多条语句大括号不能省略,建议永远不要省略
一般来说,有左大括号就没有分号,有分号就没有左大括号
while 循环语句的基本格式
基本格式
while(判断条件语句){

循环体语句;

}
扩展格式:
初始化语句;

while(判断条件语句){

循环体语句;

控制条件语句;

}
while循环和for循环可以等价转换
while 循环 与for 循环 的区别(变量的定义位置)
使用区别:
如果想在循环结束后,继续使用控制条件的那个变量。用while循环
否则使用for循环
如果不确定,建议使用for循环
原因:for循环定义的变量只在循环结构中有效,循环结束后,变量就会从内存中消失,可以提高内存的使用效率
另外,
如果是一个范围的。用for循环非常明确
如果范围不是很明确就用while循环
do - whilie
基本格式

do{

循环语句体;

}while(判断条件语句);

扩展格式

初始化语句;

do{

循环体语句;

控制条件语句;

}while(判断条件语句)
三种循环结构的区别

do-while 循环至少执行一次循环体
for while 循环必须先判断条件是否成立,然后决定是否执行循环语句。
我们一般使用哪种循环?
首先考虑for 然后是while 再然后是do while

特别注意 死循环的注意事项

A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。

B:两种最简单的死循环格式

while(true){

}

for(; ;){

}
注意:for循环()内的三个条件,并不一定全部都有
System.out.print();该语句的作用是输出不换行
System.out.println();该语句的作用是空行

  注意:‘\x’  x表示任意,转移字符
        ‘\t’  tab 键的位置
        ‘\r’  回车
        '\n'  换行

跳转控制语句
Java中的goto是保留字,目前还不能用,虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如,想在某个循环走到某一步的时候就结束,现在就做不了这件事,为了弥补这个缺陷。Java提供了break 和continue,return来实现控制结构的跳转和中断。
break 中断
continue 继续
return 返回

break 使用场景

A: switch 语句中
B:循环语句中(循环语句中加入了if判断语句)
注意:离开上面两个场景,无意义
如何使用:
A:跳出单层循环

for(int x = 0;x<10;x++){
  if(x==2){
    break;
  }
  System.out.println("hello");
}
for(int x =0;x<3;x++){
  for(int y = 0;y<4;y++){
    if(y==2){
      break;
    }
    System.out.print("*");
  }
  System.out.println("--");
}//输出三行两列

B: 跳出多层循环 想要实现这个效果,就必须知道一个东西,带标签的语句
格式:
标签名:语句

wc:for(int x =0;x<3;x++){
  nc:for(int y = 0;y<4;y++){
        if(y==2){
        //break nc;//跳出单层循环
        break wc;//跳出多层循环

     }
      System.out.print("*");
     }
      System.out.println("--");
   }//输出三行两列

continue 使用场景

在循环语句中,离开这个场景的存在就没有意义
continue的作用
单层循环对比break。然后总结两个区别
A break 退出当前循环
B continue 退出本次循环,进入下一次的执行

for(int x = 0 ; x<10;x++){
  if(x==3){
    //break;//0,1,2
    continue;//0,1,2,4,5,6,7,8,9
  }
  System.out.println(x);
}

return 使用场景
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法,跳转到上层调用的方法。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011301372/article/details/79981507
文章标签: 控制流程
个人分类: Java基础
上一篇方法与数组和参数传递
下一篇面向对象
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭