Java语言执行流程

Java语言执行流程

​ 流程控制语句就是在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。流程语句可分为顺序结构、选择结构和循环结构,接下来介绍一下这几种流程控制语句的主要逻辑和执行流程。

一、顺序结构

​ 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说,写在前面的先执行,写在后面的后执行。这个比较简单,就不再加以叙述了。

二、选择结构

​ 选择结构也被称为分支结构,有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

1、选择结构if语句格式及其使用

(1)**A:**if语句的格式1:
if(比较表达式或者是boolean类型的值) {
语句体;
}

​ **B:**执行流程:先计算比较表达式的值,看其返回值是true还是false,如果是true,就执行语句体,如果是false,就不执行语句体;

  • 注意:比较表达式无论简单还是复杂,结果必须是boolean类型。if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。一般来说:有左大括号就没有分号,有分号就没有左大括号。

(2)**A:**if语句的格式2:

​ if(比较表达式) {
​ 语句体1;
​ }else {

​ 语句体2;
​ }

  • 注意事项:else后面是没有比较表达式的,只有if后面有。

**B:**执行流程:首先计算比较表达式的值,看其返回值是true还是false,如果是true,就执行语句体1;
如果是false,就执行语句体2。

(3)**A:**if语句的格式3:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}

else {
语句体n+1;
}

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

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

注意事项:

  • 当只要有一个比较表达式为true时,if语句结束。
  • 选择结构if语句中的else可以省略,但是最好不要省略,利于代码的严谨性和可读性。
  • 选择结构if语句三元表达式的区别:三元表达式能实现的功能,if else 语句也能实现其功能;if else 能实现的功能,三元表达式不一定能实现其功能。如果三元表达式能现该功能的时候,就用三元表达式,因为三元表达式可以简化代码,比较容易理解与实现;如果不能实现,则可用if else语句。

2、选择结构switch语句格式及其解释

(1)switch语句的格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;

default:
语句体n+1;
break;
}

(2)switch语句的格式解释:

  • 表达式的取值可以是:byte,short,int,char,JDK5以后可以支持枚举类型 JDK1.7之后可以支持字符串类型 。
  • case后面跟的是要和表达式进行比较的值,但只能是常量,不能是变量,而且,多个case后面的值不能出现相同的;
  • 语句体部分可以是一条或多条语句;
  • break表示中断,结束的意思,可以结束switch语句,该语句可以省略,运行也不会报错,但是结果可能不是我们想要的,此时会会出现一个现象:case穿透,即若case或是default后面没有该语句,则会按照顺顺序结构一直执行下去,直到所有该语句之前的所有语句执行完毕为止。所以不建议省略。
  • default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似,该语句可以省略,但是不建议,因为它的作用是对不正确的情况给出提示,该语句可以放在任意位置,但是建议放在最后,以便于读取和使用。

(3)执行流程:先计算表达式的值,然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句。

  • switch语句的结束条件为:遇到break表示程序结束,或是一直执行到末尾。

4.选择结构if语句和switch语句的区别

​ 在做选择判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用哪种语句呢?我们可以根据他们的使用场景来进行区别和选择。

​ if语句使用场景有:针对结果是boolean类型的判断,针对一个范围的判断,针对几个常量值的判断。
​ switch语句使用场景:针对几个常量值的判断。

结果显而易见,建议大家多用if语句,适用于各种场景,当然,switch语句也可以,但一定要选择正确的场景。

三、循坏结构

​ 循环结构的就是循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句。当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

1、循坏结构for语句的格式及其使用

(1)循环结构for语句的格式:
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}

(2)执行流程:**A.**首先执行初始化表达式语句;**B.**再执行判断条件语句,看其返回值是true还是false,如果是true,就继续执行,如果是false,就结束循环;**C.**执行循环体语句;**D.**执行控制条件语句;E.执行完控制条件语句之后回到B之后继续执行判断语句,如此循环,直到判断条件语句的返回值是false时,结束循环。

注意事项:

  • 循环结构for语句的初始化表达式语句只执行一次。

  • 在循环结构for语句中判断条件语句无论简单还是复杂其结果都是boolean类型。

  • 在循环结构for语句中循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略,但建议永远不要省略。

  • 一般来说:有左大括号就没有分号,有分号就没有左大括号。

2、循环结构while语句的格式和基本应用

(1)循环结构while语句的格式:
**A.**while循环的基本格式:
while(判断条件语句) {
循环体语句;
}
**B.**while循环的完整格式:
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}

(2)执行流程:**A.**首先执行初始化条件语句;**B.**再执行判断条件语句,看其返回值是true还是false如果是true,就继续执行,如果是false,就结束循环;**C.**执行循环体语句;**D.**执行控制条件语句;**E.**执行完控制条件语句之后回到B之后继续执行判断语句,如此循环,直到判断条件语句的返回值是false时,结束循环。

3、循环结构do…while语句的格式和基本应用

(1)循环结构do…while语句的格式:

**A.**do…while循环的基本格式:

​ do {
​ 循环体语句;
​ }while(判断条件语句);

**B.**do…while循环的完整格式:
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

(2)执行流程:**A.**首先执行初始化条件语句;**B.**再执行循环体语句;**C.**执行控制条件语句;**D.**执行判断条件语句,看其返回值是true还是false,如果是true,就继续执行,如果是false,就结束循环;E.执行完判断条件语句之后回到B之后执行循环体语句,如此循环,直到执行判断条件语句时其返回值是false时,循环结束。

4、循环结构三种循环语句的区别

(1)for循环使用控制条件的那个变量在里面执行,而while循环使用控制条件的那个变量在外面执行,如果你想在循环结束之后,继续使用控制条件的那个变量,则使用while循环,否则使用for循环。在你还不知道用不用控制条件的那个变量的情况下,最好选择for循环,因为变量及早的从内存中消失,可以提高内存的使用效率。

(2)对于for循环和while循环,若在循环之前能知道循环的次数,一般选for循环;若在循环之前不能知道循环次数,可以选择while循环。

(3)for循环、while循环必须先判断条件是否成立,然后决定是否执行循环体语句;而do…while循环至少先执行一次循环体。

(4)建议优先考虑for循环,然后是while循环 ,最后是do…while循环。

注意事项:

  • 注意各个循环结构中循环语句控制条件语句控制的那个变量,一定要写上,否则就容易产生死循环。但是有一个好处是若你想要让循环结构中的循环体 一直运行下去,可以直接不用写控制条件语句。

  • 死循环的两种写法分别为:

    (1)for循环:

    	for(  ;  ;  ){
    
    		System.out.println(  );
    	}
    

    (2)while循环:

    	while (true){
    	
    		System.out.println(  );
    	}
    

5、循环结构中代码优化字符的标识:

(1)’\x’:x表示任意的字符,这种方法叫做转义字符。
(2)’\t’: tab键的位置,表示制表符。
(3)’\n’: 换行字符。

四、控制跳转语句

​ 在Java程序中想在某个循环执行到某一步的时候就结束,我们可以用break,continue和return来实现控制语句的跳转和中断。

1、控制跳转语句break语句

(1)break语句的含义:中断;

(2)break语句可以使用在选择结构switch语句当中,也可以使用在循环结构的三种循环语句中。

(3)break语句的作用:**A.**退出循环结构的单层循环,也就是说,如果在循环结构中有循环嵌套,break

语句默认结束的是他所在的那个循环,但也可以根据循环的别名,去结束特定的一个循环结构。

;**B.**退出循环结构的多层循环,但是我们几乎用不到。但是要想实现这个效果,你也可以使用带标签的语句,格式为:标签名:语句。

2、控制跳转语句continue语句

(1)continue语句的含义:继续;

(2)continue语句可以使用在循环结构的三种循环语句中。

(3)continue语句的作用是跳出一次循环,执行下一步操作;如果在循环结构中有循环嵌套,break语句

默认结束的是他所在的那个循环

3、控制跳转语句return语句

(1)return语句的含义:返回;

(2)return语句可以使用在方法调用的情景当中。

(3)return语句的作用:退出一个方法,跳转到上层调用的方法当中。

注意事项:

  • 这三种控制跳转语句无论谁离开使用场景是没有任何意义的。

猜你喜欢

转载自blog.csdn.net/changjinfeng123/article/details/89004774
今日推荐