流程控制
输入
指从控制台输入数据,而非直接赋值。
语法为:Scanner 变量名=new Scanner(System.in)
数据类型 新变量名=变量名.next().
注意:此操作需要导包,否则程序无法运行。
if条件分支语句
(1)if单分支语句:
语法结构:
if(布尔表达式1){
表达式1成立时,执行语句;
}
注意:if语句中只有一条执行语句时,{}可以省略,但不推荐,程序会以第一个分号进行第一条语句的识别,同时if的执行语句也可有多条。
(2)if-else双分支语句
语法结构:
if(布尔表达式1){
条件1成立时,需要执行的语句;
}
else{
条件1不成立时,需要执行的语句;
}
(3)if多分支语句:
if(布尔表达式1){
条件1成立时,需要执行的语句;
}else if(布尔表达式2){
条件2成立时,需要执行的语句;
}
…………
else{
不满足上述所有条件时,需要执行的语句。
}
注意:执行语句为一条时{}可以省略,但可能会造成悬垂问题,此时的else和离得最近的if进行匹配。
switch多重条件分支
(1) 语法结构
Switch(表达式){
Case常量1://表达式=常量1时,需要执行的语句;
break;
Case常量2://表达式=常量2时,需要执行的语句;
break;
………………
Default:
表达式不等于上面任何一个时,需要执行的语句;
}
switch选择具有穿透性,即表达式等于某一常量时,不仅执行该常量对应的语句,还会依次执行后面的语句,如果需要避免该情况,则需要在对应的语句后面加break关键字。
case后面必须是常量,而且不可以重复。
表达式可以是byte,short,char,int,字符串,枚举。
while循环
(1)语法结构:
while(条件判断){
循环体,条件判断为true时执行
}
如果条件判断一直为true,则程序会一直执行, 即死循环,所以需要避免此情况。
do while 循环
(1)语法结构:
do{
循环体;条件判断为true时执行
}while(条件判断);
与while循环不同的是,do while先执行循环体,再进行判断,若不满足条件,则退出循环。
for循环
根据你的要求,这里总结了关于 for
循环的语法特点,并提供了一个示例代码:
关于 for
循环的语法总结:
-
语法结构:
for (①初始化变量; ②条件判断; ③步进语句) { ④循环体; }
-
语法解读:
- ①初始化变量:可以是任何数据类型的变量,用于初始化循环控制变量的值。
- ②条件判断:一个
boolean
表达式,结果为true
时执行循环体,为false
时跳出循环。 - ③步进语句:在每次循环结束后执行,通常是递增或递减循环控制变量的操作。
- ④循环体:如果条件判断为
true
,则执行循环体中的语句。
-
执行顺序:循环体执行顺序为
② -> ④ -> ③
,之后循环再次执行时顺序为② -> ④ -> ③
。 -
应用场景:适合于已知循环次数的情况,常用于遍历数组或执行固定次数的操作。
-
注意事项:
- 《1》:循环体只有一句时,可以省略大括号
{}
,但不推荐。 - 《2》:①初始化变量可以省略,但在循环体内定义的变量无法在循环外访问。
- 《3》:②条件判断可以省略,默认为
true
。 - 《4》:③步进语句可以省略,但通常在循环体内手动控制循环变量。
- 《5》:①②③可以同时省略,形成一个无限循环,一般需要在循环体中使用
break
来退出循环。
- 《1》:循环体只有一句时,可以省略大括号
示例代码:
以下示例展示了一个简单的 for
循环,用于打印数组中的元素:
public class ForLoopExample {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
// 基本的for循环
for (int i = 0; i < array.length; i++) {
System.out.println("Element at index " + i + ": " + array[i]);
}
// 省略初始化变量,使用定义在外部的变量
int j = 0;
for (; j < array.length; j++) {
System.out.println("Element at index " + j + ": " + array[j]);
}
// 省略条件判断,默认为true,形成无限循环
int k = 0;
for (;;) {
if (k >= array.length) {
break; // 使用break退出循环
}
System.out.println("Element at index " + k + ": " + array[k]);
k++;
}
}
}
这段代码展示了三种形式的 for
循环:
- 第一个使用了完整的
for
循环结构来遍历数组array
。 - 第二个省略了初始化变量,使用了定义在外部的变量
j
。 - 第三个省略了条件判断,形成了一个无限循环,通过在循环体内使用
break
来退出循环。
for each循环
(1)语法结构:
for(数据类型 变量名:数组名){
//要执行的代码块
}
(2)注意事项:for each无法修改数组元素,也无法控制循环的起始位,只能整体遍历数组。
break和continue
(1)break:含义为跳出循环,指整个循环都不会再执行,一般和if配套使用,需要注意的是,break只会跳出本层也就是离它最近的那层循环,在多层循环结构中若要跳出外层循环,则需要使用outer和inner进行区分和强调。
(2)Continue:含义也是跳出循环,但与break不同,它不是直接跳出循环,而是结束当前循环,直接进入下次循环。