if 结构
if 语句是使用最多的条件分支结构,它属于选择语句,也可以称为条件语句。
if 语句的最简语法格式如下,表示“如果满足某种条件,就进行某种处理”。
if (条件表达式) {
语句块;
}
条件表达式:条件表达式可以是任意一种逻辑表达式,最后返回的结果必须是一个布尔值。取值可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式。如果条件为真,那么执行语句块;如果条件为假,则语句块将被绕过而不被执行。
语句块:该语句块可以是一条语句也可以是多条语句。如果仅有一条语句,可省略条件语句中的大括号 {}。当从编程规范角度不要省略大括号,省略大括号会使程序的可读性变差。
例:
public static void main(String[] args) {
String username = “admin”; // 用户名
String userpass = “123456”; // 密码
String code = “0000”; // 验证码
if (username != “admin” && userpass != “123456” && code != “0000”) {
System.out.println(“登录失败!”);
System.out.println(“请检查输入的用户名、密码和验证码是否正确!”);
}
}
在这里为 if 语句设置了一个复杂的复合表达式来验证登录条件。执行后的输出结果如下:
if-else 结构
单 if 语句仅能在满足条件时使用,而无法执行任何其他操作(停止)。而结合 else 语句的 if 可以定义两个操作,此时的 if…else 语句表示“如果条件正确则执行一个操作,否则执行另一个操作”。
使用 if…else 语句的语法格式如下所示:
if (表达式) {
语句块1;
} else {
语句块2;
}
例:
在例 3 中为实现比较 num1 和 num2 的大小,使用了 3 个 if 条件语句分别判断大于、等于和小于的情况。下面使用 if…else 双条件来实现,具体代码如下:
public static void main(String[] args) {
int num1 = 50;
int num2 = 34;
// 如果num1等于num2
if (num1 == num2) {
System.out.println(“num1等于num2”);
}
// 如果num1大于num2
if (num1 > num2) {
System.out.println(“num1大于num2”);
} else {
// 否则就是num1小于num2
System.out.println(“num1小于num2”);
}
}
if…else if 多分支语句的语法格式如下所示:
if(表达式1) {
语句块1;
} else if(表达式2) {
语句块2;
…
} else if(表达式n) {
语句块n;
} else {
语句块n+1;
}
图3 if…else if 语句的执行流程
嵌套 if 的使用
if 语句的用法非常灵活,不仅可以单独使用,还可以在 if 语句里嵌套另一个 if 语句。同样,if…else 语句和 if…else if 语句中也可以嵌套另一个 if 结构的语句,以完成更深层次的判断。
嵌套 if 的语法格式如下:***(不建议使用)***
if(表达式1) {
if(表达式2) {
语句块1;
} else {
语句块2;
}
} else {
if(表达式3) {
语句块3;
} else if(表达式4) {
语句块4;
} else {
if(表达式n) {
语句块n;
} else {
语句块n+1;
}
}
}
switch 语句格式
switch 语句是 Java 的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。因此,它提供了一个比一系列 if-else-if 语句更好的选择。
switch 语句的基本语法形式如下所示:
switch(表达式) {
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
…
case 值n:
语句块n;
break;
default:
语句块n+1;
break;
}
其中,switch、case、default、break 都是 Java 的关键字。
(1)switch
表示“开关”,这个开关就是 switch 关键字后面小括号里的值,小括号里要放一个整型变量或字符型变量。表达式必须为 byte,short,int,char类型。
2)case
表示“情况,情形”,case 标签可以是:
类型为 char、byte、 short 或 int 的常量表达式。
while 循环语句的语法结构如下:
while(条件表达式) {
语句块;
}
do-while 语句
如你刚才所见,如果 while 循环一开始条件表达式就是假的,那么循环体就根本不被执行。然而,有时需要在开始时条件表达式即使是假的情况下,while 循环至少也要执行一次。
幸运的是,Java就提供了这样的循环:do-while循环。do-while 循环语句也是 Java 中运用广泛的循环语句,它由循环条件和循环体组成,但它与 while 语句略有不同。do-while 循环语句的特点是先执行循环体,然后判断循环条件是否成立。
do-while 语句的语法格式如下:
do {
语句块;
}while(条件表达式);
for 语句语法格式如下所示。
for(条件表达式1;条件表达式2;条件表达式3) {
语句块;
}