Java 笔记 之 流程控制语句( if & switch & for & while)
来源:互联网 发布:java项目开发小 组长 编辑:程序博客网 时间:2024/06/03 17:39
概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
分类
顺序结构 选择结构 循环结构
下面分别说一下每个结构
顺序结构
- 概述
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。 - 总的来说:写在前面的先执行,写在后面的后执行
- 顺序结构图
public class Demo01 { public static void main(String[] args) { System.out.println("开始"); System.out.println("语句A"); System.out.println("语句B"); System.out.println("语句C"); System.out.println("结束"); }}
选择结构
概述
选择结构也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码Java语言提供了两种选择结构语句
if语句
switch语句
选择结构if
if语句有三种格式
if语句第一种格式:
if(关系表达式) {
语句体
}执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体流程图
```public class Demo01If { public static void main(String[] args) { System.out.println("开始"); // 定义两个变量 int a = 10; int b = 20; if (a == b) { System.out.println("a等于b"); } int c = 10; if (a == c) { System.out.println("a等于c"); } System.out.println("结束"); }}```
if语句第二种格式:
if(关系表达式) {
语句体1;
}else {
语句体2;
}执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
流程图public class Demo02If { public static void main(String[] args) { System.out.println("开始"); // 判断给定的数据是奇数还是偶数 // 定义变量 int a = 100; // 给a重新赋值 a = 99; if (a % 2 == 0) { System.out.println("a是偶数"); } else { System.out.println("a是奇数"); } System.out.println("结束"); }}
if语句第三种格式:
if (判断条件1) {
执行语句1
} else if (判断条件2) {
执行语句2
}
…
else if (判断条件n) {
执行语句n
} else {
执行语句n+1
}执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。流程图
例:
x和y的关系满足如下:
x>=3 y = 2x + 1;
-1<=x<3 y = 2x;
x<-1 y = 2x – 1;
根据给定的x的值,计算出y的值并输出。public class Demo03If { public static void main(String[] args) { // x和y的关系满足如下: // x>=3 y = 2x + 1; // -1<=x<3 y = 2x; // x<=-1 y = 2x – 1; // 根据给定的x的值,计算出y的值并输出。 // 定义变量 int x = 5; /* int y; if (x >= 3) { y = 2 * x + 1; } else if (x >= -1 && x < 3) { y = 2 * x; } else if (x < -1) { y = 2 * x - 1; }else { y = 0; } */ /*int y = 0; if (x >= 3) { y = 2 * x + 1; } else if (x >= -1 && x < 3) { y = 2 * x; } else if (x < -1) { y = 2 * x - 1; }*/ int y; if (x >= 3) { y = 2 * x + 1; } else if (x >= -1 && x < 3) { y = 2 * x; } else { y = 2 * x - 1; } System.out.println("y的值是:"+y); }}
总结
第一种格式适合做一种情况的判断
第二种格式适合做二种情况的判断
第三种格式适合做多种情况的判断
选择结构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相似。执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。流程图
循环结构
概述
循环有一个开始条件
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。循环语句的组成
循环变量初始化 (初始化表达式):一条或者多条语句,这些语句完成一些初始化操作。
循环出口(布尔表达式):这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环逻辑内容(循环体):这个部分是循环体语句,也就是我们要多次做的事情。
循环增量(步进表达式):这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。循环结构for
格式
for(初始化表达式①;布尔表达式②;步进表达式④){
循环体③
}执行流程
执行顺序: ①②③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况流程图
循环结构while
格式基本格式
while(布尔表达式) {
循环体语句;
}扩展格式
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行流程
执行顺序: ①②③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。流程图
循环结构dowhile
格式基本格式
do {
循环体语句;
}while(布尔表达式);扩展格式
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
执行流程
执行顺序: ①③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况流程图
跳转控制语句
概述
想让循环在某一步的时候结束或者跳过某些数据不要这些数据,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue来实现控制语句的中断和跳转。
break 中断
continue 继续
Break
- break的使用场景:
在选择结构switch语句中
在循环语句中
离开使用场景的存在是没有意义的 - break的作用:
跳出单层循环
public class Demo01Break { public static void main(String[] args) { //离开使用场景没有意义 //break;//break cannot be used outside of a loop or a switch for (int i = 1; i <=10; i++) { //需求:打印完两次HelloWorld之后结束循环 if(i == 3){ break; } System.out.println("HelloWorld"+i); } } }
- break的使用场景:
Continue
- continue的使用场景:
- 在循环语句中
- 离开使用场景的存在是没有意义的
- continue的作用:
单层循环对比break,然后总结两个的区别
break 结束当前循环
continue 结束本次循环,继续下一次循环
public class Demo02Continue { public static void main(String[] args) { //离开使用场景没有意义 //continue;//离开使用场景没有意义 for (int i = 1; i <=10; i++) { //需求:不打印第三次HelloWorld if(i == 3){ continue; } System.out.println("HelloWorld"+i); } } }
- continue的使用场景:
- Java 笔记 之 流程控制语句( if & switch & for & while)
- 控制流程语句if、switch、while、do-while、for
- java(4)------流程控制语句(if,switch,for,while,do-while)
- java程序流程控制,if语句,switch语句,while语句,do while语句,for 语句,break关键字,continue关键字
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- C语言中流程控制语句(if,switch,for,while,do-while,continue,break,return)
- 【Swift】学习笔记(五)——控制语句(if,switch,for-in,for,while,do-while)
- 程序流程控制 if switch while do while for
- JS:1.2控制语句(if,if else,for,switch,while,do while)
- swift控制语句,for,while,repeat-while,if,switch
- 循环控制语句for while do-while if switch
- Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)
- Python的控制语句,(if,while,for)之if
- Swift控制语句(if,switch,forin,for,while,dowhile)
- Swift之控制流( if 和 switch 、for-in 、 for 、 while 和 repeat-while)
- java程序流程控制(if、switch、for)
- PHP流程控制替代语法(if\for\foreach\while\switch case)
- 流程控制语句if/switch
- 动态规划(三)暴力递归的优化之路——数字矩阵的最小路径和
- forward(转发)与redirect(重定向)的区别
- Java地位无可动摇的12个原因
- jzoj3893 画矩形
- java数组点名系统
- Java 笔记 之 流程控制语句( if & switch & for & while)
- Linux学习之基础知识——httpd编译安装
- 《Effective Java(中文第二版)》【PDF】下载
- 指针问题
- java设计模式----原型模式
- EOJ 3441 唐纳德与子串 (Easy)
- Spatial Transformer Network学习笔记
- 换了个自己搭的WP博客
- 汇编语言实现简单的冒泡排序