流程控制分类:

一、顺序结构

如果没有流程控制(即没有分支结构和循环结构),Java方法里面的语句是一个顺序执行流,从上到下依次执行每条语句。

二、分支结构

1.if语句

if语句使用布尔表达式或者布尔值作为分支条件来进行分支控制。有如下三种形式:

(1)第一种形式

if(布尔表达式或者布尔值){

语句...

}

(2)第二种形式

if(布尔表达式或者布尔值){

语句...

}else{

语句...

}

(3)第三种形式

if(布尔表达式或者布尔值){

语句...

}

else if(布尔表达式或者布尔值){

语句...

}

...//可以有零个或者多个else if语句

else//最后的else语句也可以省略

{

语句...

}

案例:

public classvar {public static voidmain(String[] args){int age = 45;if(age > 60){

System.out.println("老年人");

}else if(age > 40){

System.out.println("中年人");

}else if(age > 20){

System.out.println("青年人");

}

}

}

运行结果:中年人

省略花括号案例:

public classvar {public static voidmain(String[] args){int c = 5;if(c > 4)

System.out.println("c大于4");elseSystem.out.println("c不大于4");

}

}

允许结果:c大于4

2.switch语句

(1)switch的语法格式如下:

switch (expression){

//可以省略case后代码块的花括号

case condition1:

{

statement(s);

break;

}

case condition2:

{

statement(s);

break;

}

...

case conditionN:

{

statement(s);

break;

}

default:

{

statement(s);

}

}

案例:

public classvar {public static voidmain(String[] args){char str = 'A';switch(str){//可以省略case后代码块的花括号

case 'A':

{

System.out.println("A");break;

}case 'B':

{

System.out.println("B");break;

}case 'C':

{

System.out.println("C");break;

}default:

{

System.out.println("X");

}

}

}

}

运行结果:A

注意:

switch语句后面的控制表达式的数据类型只能是byte、short、char、int四种整数类型、枚举类型和java.lang.String类型(Java7才允许),不能是StringBuffer或者StringBuilder这两种字符串类型,也不能是boolean类型。

switch语句会先求出expression表达式的值,然后拿这个表达式和case标签后的值进行比较,一旦遇到相等的值,程序就开始执行这个case标签后的代码,不再判断与后面case、default标签的条件是否匹配,除非遇到break才会结束,所以注意不要忽略case后代码块的break。

三、循环结构

一般循环语句可能包含4个部分:初始化语句(init_statement)、循环条件(test_expression)、循环体(body_statement)、迭代语句(iteration_statement)[循环体如果只有一行语句,可以省略花括号]

三种循环结构之间可以相互嵌套。

1.while循环语句

案例:

public classvar {public static voidmain(String[] args){int index = 1;while(index < 5){

System.out.println("index:"+index);

index++;

}

}

}

运行结果:

注意:如果省略了循环体的花括号,那么while循环条件只控制到紧跟该循环条件语句的第一个分号处。

2.do while 循环语句

案例:

public classvar {public static voidmain(String[] args){int index = 1;do{

System.out.println("index:"+index);

index++;

}while (index < 5);

}

}

运行结果:

3.for循环

案例:

public classvar {public static voidmain(String[] args){for (int index = 0; index < 5; index++) {

System.out.println("index:"+index);

}

}

}

运行结果:

如果循环体只有一行语句,那么循环体的花括号可以省略

注意:

for循环如果需要在初始化表达式中声明多个变量,那么这些变量应该具有相同的数据类型。

for循环圆括号中只有两个分号是必需的,初始化语句、循环条件、迭代语句部分都是可以省略的。如果省略了循环条件,则这个循环条件默认为true。

建议不要在循环体内修改循环变量(也叫循环计数器)的值,否则会增加程序出错的可能性。万一程序真的需要访问,修改循环变量的值,建议重新定义一个临时变量,先将循环变量的值赋给临时变量,然后对临时变量的值进行修改。

把for循环的初始化语句放在循环之前定义有一个作用:可以扩大初始化语句中所定义变量的作用域。

4.foreach循环

案例:

public classvar {public static voidmain(String[] args){int[] arr = new int[]{1,2,3,4,5};for (intindex : arr) {

System.out.println("index:"+index);

}

}

}

允许结果:

foreach的语句格式:

for(元素类型t 元素变量x : 遍历对象obj){

引用了x的java语句;

}

5.控制循环结构

break:用于完全结束break语句所在循环,跳出当前循环体。

break还可以用于直接结束其外层循环,此时需要借助标签。Java的标签就是一个紧跟着英文冒号(:)的标识符。与其他语言不同的是,Java中的标签只有放在循环语句之前才有作用。例如下面代码:

public classvar {public static voidmain(String[] args) {//外层循环,outer作为标识符

outer:for(int i = 0;i < 5;i++) {//内层循环

for(int j = 0;j < 3;j++) {

System.out.println("i="+i+" j="+j);if(j == 1) {//跳出outer标签所标识的循环

breakouter;

}

}

}

}

}

运行结果:

第11行的break outer;语句将会导致结束outer标签指定的循环,而不是break所在的循环。注意:break后的标签必须是一个有效的标签,即应该把标签放在break语句所在循环的外层循环之前定义。当然,也可以把标签放在break语句所在循环之前定义,只是这样就失去了标签的意义,因为break默认就是结束其所在的循环。

continue:用于忽略本次循环剩下的语句,接着开始下一次的循环,并不会终止循环。

与break类似,continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环。这个标签通常应该放在continue所在循环的外层循环之前定义。

return:直接结束整个方法,从而结束循环。

原文:https://blog.csdn.net/qq_41338341/article/details/81107840

java 流程控制_《Java基础知识》Java流程控制相关推荐

  1. java流程控制图_Java流程控制

    Java流程控制 用户交互Scanner 顺序结构 选择结构 循环结构 break&continue 练习 Scanner对象 通过Scanner类来获取用户的输入 语法 Scanner s ...

  2. java 流程控制_Java流程控制

    依旧是用Xmind来显示Java流程控制的大致内容: ---------------------------------------------------- Variable举例: public c ...

  3. java 判断对象为控制_Java流程控制

    Java流程控制 1.Scanner对象 ①java.util.Scanner是Java5的新特性,可以通过Scanner类来获取用户的输入. ②基本语法: 1 Scanner s=new Scann ...

  4. java检测按键_java – 在控制台中检测按键

    如果你想玩控制台,你可以从这开始: import java.util.Scanner; public class ScannerTest { public static void main(Strin ...

  5. java 基本语法与流程控制_Java基础语法之控制流程

    Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}&qu ...

  6. Java基础篇3——流程控制

    Java基础篇3--流程控制 1.顺序结构 正常代码的流程即是顺序流程 2.分支结构 2.1.if-else分支 if(条件表达式) {语句块1; } if(条件表达式) {语句块1; } else ...

  7. java个十百千万位余数_1 Java第三课[流程控制]

    1 Java第三课[流程控制] 1.1 回顾: 1. 标识符的命名:标识符通常意义上是指 类名,包名,方法名,属性名,普通变量等等. 2. 类命名:每个单词的首字母大写; 3. 变量命名规则:字母数字 ...

  8. JAVA语言语法_流程控制(part3)

    文章目录 JAVA语言语法 三.流程控制 1.程序流程控制概述 2.顺序结构 3.分支结构 4.分支结构语句练习 5.加深键盘类Scanner类的使用 6.分支结构语句练习2 7.分支结构&s ...

  9. 四 【java基础】 程序流程控制- 分支结构

    目录 01 程序流程控制概述 02 顺序结构 03 分支结构 3.1 if-else 结构 3.2 从键盘输入数据(Scanner) 3.2 Switch-case结构 01 程序流程控制概述 流程控 ...

  10. python流程控制-Python 流程控制

    1.while语句 条件循环控制语句.一般需要和break一起使用,不然会进入死循环. 格式:[ while <条件>: <内容> break ] x=int(input('请 ...

最新文章

  1. uniapp自定义导航栏
  2. 锐捷设备常用命令大全
  3. 人生的84000种可能
  4. Google Chrome保存插件方法
  5. 还不懂你现在学习的编程语言能做什么?还不懂如何进阶?过来看图
  6. 使用keras为什么accuracy一直为0_TensorFlow 2.0+Keras 防坑指南
  7. adcetris研发历程_抗体类药物质量控制—张伯彦20130730.pdf
  8. linux 临时 目录权限,linux文件和目录权限的设置
  9. 通过Attached Property给控件绑定Command(三)
  10. 面试稳了!网易资深工程师详解运维面经!
  11. 面试题51. 数组中的逆序对
  12. IT招聘负责人:成功简历六大要素
  13. easyui中idField的作用
  14. Tomcat日志配置
  15. Java多线程核心技术
  16. xmind模板打包下载
  17. d3开发Svg编辑器
  18. 2020.1.8学习
  19. 软考__BS家族_WBS_OBS_RBS
  20. I/Q数据频谱分析仪简介

热门文章

  1. keras lastm循环神经网络训练验证测试
  2. Softmax的理解与应用
  3. ARM NEON 优化
  4. python 中的for i in range()的使用(for _ in range())
  5. 18. 编写FTP客户端程序
  6. 802.1AE保护局域网安全
  7. 预处理_不锈钢锻件预处理的必要性
  8. java 搜索机制_Java爬虫搜索原理实现
  9. mysql 2048kb限制_如何解决phpmyadmin导入数据库文件最大限制2048KB
  10. Linux查看进程的线程信息