博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 程序流程语句
阅读量:5833 次
发布时间:2019-06-18

本文共 3625 字,大约阅读时间需要 12 分钟。

顺序结构

什么是顺序结构:一行一行的执行代码

选择结构 if

什么是选择结构:通过判断条件来做选择的语句,我们称为选择语句或分支语句

定义方式:if语句使用boolean表达式或boolean值作为选择条件,有三种结构形式:

选择结构 if

第一种结构:

if (boolean条件) {      代码/当boolean条件结果为true的时候,就执行这里的代码。}

注意:

(1)不能写出 if (boolean条件) ; { }
(2)若 if 的语句只有一句话,其实可以省略{},即是如此,最好得写 {}.
(3)对于boolean类型的表达式,不要使用 boolean表达式==true的写法。

选择结构 if-else

第二种结构.

if (boolean条件) {      当boolean条件结果为true的时候,就执行这里的代码.}else {      当boolean条件结果为false的时候,就执行这里的代码.}

if-else结构和三元运算符的区别:

(1)一个是结构,一个运算表达式。

(2)运算表达式的是必须得有一个结果的。

选择结构 if-elseif-else

第三种结构:

if (boolean条件1) {      当条件1为true的时候,执行这里.}else if (boolean条件2) {      当条件2为true的时候,执行这里}else if (boolean条件3) {      当条件3为true的时候,执行这里}else  {      上述所有条件,都不满足,就执行这里.}

如果已经满足条件了,后面的判断就不会执行。

选择结构switch

定义:switch的语法结构(和if-elseif-else的语义相同)

switch (整型表达式) {    case A值:         语句1;         break;    case B值:         语句2;         break;    case C值:         语句3;         break;    default:        上述所有的结果值都不满足        语句.}

注意点

switch的语法分析以及注意:

(1)switch中的表达式的结果/类型,必须是整数类型。

  • 整数类型:byte、short、char、int。没有long。
  • 从Java7开始,switch也支持String类型。语法糖,语法糖的背后,其有用的对待 string 类型时候,用的是hashCode() 方法转换的。
public static void main(String[] args) {    String str = "fans";    switch (str) {        case "fans":            System.out.println("fans");            break;        case "leiwen":            System.out.println("leiwen");            break;        default:            System.out.println("default");            break;    }}

反编译后:

public static void main(String args[]) {        label0: {            String str = "fans";            String s;            switch ((s = str).hashCode()) {            default:                break;            case -1106497712:                if (!s.equals("leiwen"))                    break;                System.out.println("leiwen");                break label0;            case 3135424:                if (s.equals("fans")) {                    System.out.println("fans");                    break label0;                }                break;            }            System.out.println("default");        }    }

(2)switch语句,一旦找到入口,就会进入,并执行功能语句,后面的case不再判断,除非语句break,return 或者执行完成,才会停下来。

(3)多个case 的不能相同。

(4)如果语句有多条语句,要用 { }。break 写在 { } 外面。

int week = 1;switch (week) {case 1: {    System.out.println("星期1");    System.out.println("工作日");}    break;default:    System.out.println("其它");    break;}

(5)如果没有写break,就会执行当前条件后面的所有语句,直到遇到break 退出。

(6)default表示,当case中的值都不成立的时候,才执行,可以放在前面,但是要加上break,如果没有加,同样会继续往下执行。如果放在最后,可以省略break,所以一般的放在最后。

循环结构

循环 while

语法:

while (boolean表达式) {     若boolean表达式结果为true,则执行这里循环体}

注意:先判断boolean表达式。在执行循环体。

循环 do-while

语法:

do {   循环体} while (boolean表达式);

注意:

  • do while,不管boolean表达式对与错,先执行一次循环体。
  • 即使boolean表达式为false,do while也会执行一次。
  • 推论:无论条件如何,dowhile至少会执行一次。

循环 for

语法:

for (初始化语句; boolean表达式; 循环之后的操作语句) {   循环体}

初始化语句:定义变量,赋初始值,只会执行一次;

boolean表达式:判断条件,若条件为true,则进入循环体,若为false,则跳过循环。
循环之后的操作语句:变量的自增/自减操作.

执行顺序

(1)初始化语句.

(2)boolean表达式:

  • true:GOTO 3
  • false:跳过循环,不执行循环体。

(3)执行循环体.

(4)循环之后的操作语句, GOTO 2.

嵌套循环

什么时候要使用嵌套循环?

循环:当一个操作需要重复N次。

嵌套循环:当一个重复的操作,需要执行N次。

结构

一个循环当中嵌套一个循环

注意事项

(1)使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。

(2)循环嵌套结构的书写,最好采用“右缩进”格式,以体现循环层次的关系。
(3)尽量避免太多和太深的循环嵌套结构。

控制循环结构语句

break语句

结束当前所在的循环。

注意:break之后的语句,执行不到。若编写了,则语法报错。

continue语句

表示跳过的这一次当前循环,继而进行下一次循环。

注意:contine之后的语句,执行不到。若编写了,则语法报错。

return语句

表示结束循环所在的方法,方法都结束了,循环结构自然也就结束了。

控制外层循环

此时就得使用标签了,标签就是给某个循环起的别名,不过该别名得满足标识符的规范。

若要控制外层循环,就在break或continue后面跟上循环的别名就OK了

public static void main(String[] args) {    outter : for (int i = 0; i < 5; i++) {        inner : for (int j = 0; j < i; j++) {            if (i==3) {                break outter;            }        }    }}

转载于:https://www.cnblogs.com/xzh0717/p/10891755.html

你可能感兴趣的文章
.net中 Timer定时器
查看>>
幸福人生讲座(二):人生怎样才能幸福?
查看>>
面试总结之Database
查看>>
初识CPU卡、SAM卡/CPU卡简介、SAM卡简介 【转】
查看>>
Uva 10557 - XYZZY(DFS+BFS)
查看>>
团队Git使用教程
查看>>
Zookeeper与Kafka基础概念和原理
查看>>
JQ多行文本溢出省略号插件
查看>>
Apache性能优化总结
查看>>
javascript事件之: 事件冒泡, 事件捕获 ,阻止默认事件
查看>>
RookeyFrame 迁移 线下Model 新增属性 迁移 到数据库
查看>>
[03]CSS 选择器(下)
查看>>
Sql Server多种分页性能的比较
查看>>
nginx对特定参数限流
查看>>
微信资源包混淆
查看>>
mysql 索引
查看>>
Delphi线程同步
查看>>
pyspider 简单应用之快速问医生药品抓取(一)
查看>>
第K大数
查看>>
c#代码技巧
查看>>