顺序、选择和循环语句(程序的三种基本控制结构)
复合语句
1、在了解程序的三种基本控制结构之前,我们先了解以下什么是复合语句,即块语句。
2、与C语言及其他语言不同,Java语言的复合语句是以整个块区为单位的语句,所以又称为块语句。复合语句由开括号“ { ”开始,闭括号“ } ”结束。
3、在前面的学习中我们已经接触到了这种复合语句,例如:在定义一个类或方法时,类体就是以“ { ”作为开始,“ } ”作为结束的标记的,方法体同样也是以“ { ”作为开始,“ } ”作为结束的标记的。复合语句中的每个语句都是从上到下被执行。复合语句都是以整个块区为单位,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句,例如:在类体里面嵌套方法体或内部类。
4、在使用复合语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用。如果在某个变量的作用域外使用该变量,则会出现错误。
package com.zyt.lesson01;
public class Demo {
public static void main(String args[]) {
int num = 0;
for (int i = 1; i <= 10; i++) {
num += i;
}
System.out.println(num);
}
}
// 输出结果:55
package com.zyt.lesson01;
public class Demo {
public static void main(String args[]) {
for (int i = 1, num = 0; i <= 10; i++) {
num += i;
}
System.out.println(num);
}
}
// 报错
/* Exception in thread "main" java.lang.Error: 无法解析的编译问题:
num cannot be resolved to a variable
at com.zyt.lesson01.Demo.main(Demo.java:9) */
// 在for循环语句中声明的局部变量num,其作用域在for循环体中。在循环体之外使用num将会报错。
选择语句(条件语句)
我们都知道,计算机的主要功能是提供用户计算的功能,但在计算的过程中会遇到各种各样的情况,针对不同的情况会有不同的处理方法,这就要求程序开发语言要具有处理决策的能力。
一、if 条件语句
1、决策分支
决策:就是人们为某件事拿主意,下决心做出合理的选择的过程
2、if 语句
Java中处理决策的方法之一:if 语句
- 第一种形式的判断语句
// 语法一:
if(布尔表达式){
语句;
}
//如果这个布尔表达式的结果是true,则执行大括号内的语句;如果这个布尔表达式的结果是false,则跳过大括号内的语句,而继续执行大括号外的语句。
// 语法二:
if(布尔表达式)
语句;
//如果布尔表达式的结果是true,则执行圆括号后面的第一个分号内的语句;如果布尔表达式的结果为false,则跳过第一个分号内的语句,继续执行后面的语句。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-92EQ0HeE-1607846568787)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图1.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eLVwTbCs-1607846568790)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图2.jpg)]
常见的错误:
-
if(表达式)的后面多加了一个分号
if(表达式); { }
if(表达式); { 语句; }
这样的写法编辑器不会报错,但是是错误的,这时候 if 只会控制分号前的语句,不会控制分号后面花括号内的语句。
-
没加大括号{ }
if(表达式) 语句; 语句;
这样的写法编辑器不会报错,但也是错误的。这时候 if 只能控制第一个分号前的语句,而控制不到第二个分号前的语句。
-
在花括号后面加分号
if(表达式) { 语句; };
这样的写法编辑器会报错,这样的语法是错误的
- 第二种形式的判断语句
// 语法
if(布尔表达式){
语句一;
}else{
语句二;
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTfsOqjg-1607846568791)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图3.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y65b5x5Q-1607846568793)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图4.jpg)]
实例:(流程图如上)
public class Demo{
public static void main(String args[]){
int balance = 500;
if(balance==500){
System.out.println("买豪车");
}else{
System.out.println("买自行车");
}
System.out.println("吃饭睡觉");
}
}
// 输出结果:吃饭睡觉
常见的错误:
-
未加大括号{ }
else 之前若有两个 if 且都没加大括号,则这个 else 会匹配离它最近的那个 if
if() if() else{ }
-
else 不能单独使用,必须和关键字 if 一起使用
- 第三种形式的判断语句
// 语法
if(表达式 1){
语句 1;
......
}else if(表达式 2){
语句 2;
......
}else if(表达式 m){
语句 m;
......
}else{
语句 n;
......
}
3、在书写判断语句时要遵循一定的书写规范,否则容易出现错误
布尔表达式书写规范
boolean flag = flase;
if(flag==true)
//这样书写没有错误,但如果不注意漏写一个"="就会出现错误,但不会报错。
//因此更规范的写法应该为:if(flag) 和 if(!flag)
4、if 判断语句的总结
-
表达式:关系表达式或逻辑表达式
-
表达式的运算结果应该是真或者假
真:执行该语句
假:跳过该语句,执行下一条语句
-
” 语句 “可以是单语句也可以是复合语句。
-
else if 可以有多条。
-
if 和 else if 都需要判断表达式真假,else 不需要,else if 和 else 必须配合 if 一起使用,不能单独使用。
二、Switch 多分支语句
在编程中经常会碰到这