新手初入Java(三)程序流程和程序的调试

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_43597675/article/details/83832630

(一)程序流程

Java程序语句执行的顺序包括4种基本控制结构:顺序结构、选择结构、循环结构和异常处理逻辑结构。

1、顺序结构

在Java程序中,语句执行的基本顺序按各语句出现的位置先后顺序执行,称之为顺序结构,如图所示,先执行语句块1,在执行语句块2,最后执行语句块3,三者是顺序执行关系。
顺序结构

2、选择结构

(1)if语句
if条件语句包含多种形式,单分支,双分支和多分支,其流程如下:

  • 单分支
    语法形式如下:
if(条件表达式)
	语句/语句块;

单分支

  • 双分支
    语法形式如下:
if(条件表达式)
	语句/语句块1;
else
	语句/语句块2;	

双分支

  • 多分支
    语法形式如下:
if(条件表达式1)
	语句/语句块1;
else if(条件表达式2)
	语句/语句块2;
	...
	...
	...
else if(条件表达式n)
	语句/语句块n;
	else
	语句/语句块n+1;]		

多分支
(2)switch语句

对于多重分支,虽然可以使用嵌套的if语句实现,但是如果分支较多,程序可读性较差,此时可利用switch语句。switch语句是抑恶个控制语句,它通过将控制传递给其体内的case语句来处理多个选择和枚举。

switch语句的语法如下:

	switch(控制表达式){
	case(常量表达式)1:
		语句序列1;
		break;
	case 常量表达式2:
		语句序列2;
		break;
		...
		...
	case 常量表达式n:
		语句序列n;
		break;
	default:
		语句序列n+1;
		break;
}

说明:
(1)switch语句基于控制表达式的值选择要执行的语句分支。switch语句按以下顺序执行。

  • 控制表达式求值。
  • 如果case标签后的常量表达式的值恰好等于控制表达式的值,控制将转到匹配的case标签后的语句序列。
  • 如果case标签后的常量表达式的值不等于控制表达式的值,且存在一个default标签,则控制将转到default标签后的语句序列。
  • 如果case标签后的常量表达式的值不等于控制表达式的值,且不存在一个default标签,则控制将跳出switch语句执行后继语句。

(2)控制表达式所允许的数据类型:整数类型(byte、short、int)、字符类型(char)或者枚举类型,即只能为可隐式转换为int的类型和枚举类型。case标签后的常量表达式只能为常数或常量,不能为变量。
(3)每一个case标签后的常量表达式的值都不能相同,其中值相同的不同常量。
(4)各个case子句出现的次序不影响语句的执行结果。
(5)一个switch语句最多只能有一个default标签。虽然switch结构中的case可以按任意顺序放置,但是一般建议将default放在最后。
(6)和if-else语句不同的是,在执行一个case子句后面的语句序列后,switch语句并不会终止,要退出switch语句,必须使用一个跳转语句。一般情况下,跳转语句是break,当到达的break语句时,结束switch语句的执行。
示例如下:

public static void Switch(char n)
    {
        System.out.println("请输入A,B,C,D,E:");
        switch(n)
        {
            case 'A':
                System.out.println("90--100");
                break;
            case 'B':
                System.out.println("80--90");
                break;
            case'C':
                System.out.println("70--80");
                break;
            case'D':
                System.out.println("60--70");
                break;
            case'E':
                System.out.println("60分以下");
                break;
            default:
                System.out.println("输入错误!");
                break;
        }
}

3、循环结构

(1)for循环
for循环语句时记数型循环语句,一般用于已知循环次数的情况,所以也称为定次循环。

基本语法如下:

for(初始化设置表达式;循环执行条件;循环变量的增减量){
	循环语句序列;
}

执行顺序为:初始化设置表达式–>循环执行条件–>循环语句序列–>循环变量的增减量
注意: 循环变量的增减量可以写在循环语句序列中。
for循环只作用于for(初始化设置表达式;循环执行条件;循环变量的增减量) 后面的大括号的范围内。
(2)while循环

与for循环一样,while也是一个预测试的循环,但是while在循环开始前,并不知道重复执行循环语句序列的次数。while语句按不同条件执行循环语句序列零次或多次。
while语句的格式:

while(条件表达式){
	循环语句序列;
	}

说明:
1)while循环语句的执行过程如下。

  • 计算条件表达式
  • 如果条件表达式结果为true,控制将转到循环体语句序列(进入循环体)。当到达循环体语句序列的结束点时转计算条件表达式,即控制转到while语句的开始,继续循环。
  • 如果条件表达式结果为false,退出while循环,即控制转到while循环语句的后继语句。

while循环的执行流程图如图:
while循环的执行流程

2)条件表达式是每次进入循环之前进行判断的条件,可以为关系表达式或逻辑表达式,其运算结果为true(真)或false(假)。条件表达式中必须包含控制循环的变量。
3)循环语句序列可以是一条语句,也可以是多条语句。当语句序列中仅含有一条语句是,花括号可以省略。
4)循环语句序列中至少应包含改变循环条件的语句,以使循环趋于结束,避免“死循环”。

代码示例如下:

public static void main(String[] args) {
        int i=1,sum=0;
        while(sum<=3000){
            sum+=i;
            i++;
        }
        System.out.println("求1+2+3+4+……的和,直至和大于3000为止,结果为"+sum);
}

(3)do while循环

do语句按不同类型执行一次或多次循环语句序列。do while循环式while循环的后测试版本。该循环的测试条件在执行完循环体之后执行。而while循环的的测试条件在执行循环体之前执行。因此,do while循环的循环体至少执行一次,而while循环的循环体可能一次也不执行。

do while循环语句的格式如下:

do{
	循环体语句序列;
}while(条件表达式);

do while循环语句的执行流程如下:
当执行到do语句时,立即进入循环体执行循环体语句序列,然后测试条件表达式。如果条件表达式的结果为true,则返回do语句继续执行;否则退出循环,执行while语句的后继语句。do while循环的执行流程如下图:
do while循环语句流程图

代码示例如下:

    public static void main(String[] args) {
        int i=1,sum=0;
       do{
            sum+=i;
            i++;
        } while(sum<=3000);
        System.out.println("求1+2+3+4+……的和,直至和大于3000为止,结果为"+sum);
}

4、跳转语句

(1)break语句
不带标签的break语句,在多分支选择结构中的作用时跳出循环,执行后继语句。可以用于退出for、for each、while和do while循环。
带标签的break语句用于跳出有标签标记的语句/语句块。
(2)continue语句
不带标签的continue语句,也可以用于退出for、for each、while和do while循环。但它是结束本次循环,然后根据循环条件判断是否执行下一次循环。带标签的continue语句和带标签的break语句相类似,用于结束本次循环,并跳转到由标签标记的外层循环。
(3)return语句
return语句用于终止方法的执行并将控制返回给调用方法。如果有返回类型,return语句必须返回这个类型的值。如果方法为void型,应使用没有表达式的return语句;如果方法为void类型,方法体最后的return语句可以省略。

5、程序的调试

(1)打断点:在代码行左边栏点击鼠标左键,出现红色圆圈。然后点击右上的甲壳虫。
(2)让它一步一步执行:点击向下的蓝色箭头。如下图中的:

调试
(3)结束时点击右上角的停止按钮,再次点击红色圆圈,结束调试。

猜你喜欢

转载自blog.csdn.net/qq_43597675/article/details/83832630