1. 块作用域
块(即复合语句)是指由一对花括号括起来的多条 Java 语句。块决定了变量的作用域,一个块可以嵌套在另一个块中。例如:
```java
public class PrintIn {
public static void main(String[] args) {
int a = 2;
{
int a = 3;
int b = 3;
}
}
}
```
需要注意,在一个块中定义的变量不能在嵌套的块中重新定义相同的变量,否则会编译出错。
2. if 语句
if 语句的语法形式与 Javascript 类似:`if () {} else if () {} ... else {}`。Java 中的 if 语句与 Python 不同,Python 可以直接用数组、字符串、字典等作为条件,但在 Java 中只能使用布尔表达式。例如:
```java
public class PrintIn {
public static void main(String[] args) {
int a = 2;
int v = 4;
if (a <4) {
System.out.println("OK");
} else {
System.out.println("bad");
}
}
}
```
错误的写法:
```java
public class PrintIn {
public static void main(String[] args) {
int a = 2;
int v = 4;
if (a) {
System.out.println("OK");
} else {
System.out.println("bad");
}
}
}
```
3. for 循环
for 循环的语法形式为 `for (初始化; 条件; 更新) {}`。通过计数器或变量的值修改来结束循环。变量的作用域仅限于循环体内部。例如:
```java
public class PrintIn {
public static void main(String[] args) {
int i;
for (i = 2; i <4; i++) {
System.out.println(i);
}
System.out.printf("i value is %d", i);
}
}
```
如果需要在 for 循环外部使用变量,需要在循环外部定义该变量。
4. while 语句
while 语句的形式为 `while (条件) { 语句 }`。当条件成立时,执行块中的代码;否则,不执行。例如:
```java
public class PrintIn {
public static void main(String[] args) {
int i = 3;
while (i <6) {
System.out.println(i);
i += 1;
}
}
}
```
do-while 语句的形式为 `do { 语句 } while (条件)`。无论条件是否成立,都会先执行一次块中的代码,然后再进行判断。例如:
```java
public class PrintIn {
public static void main(String[] args) {
int i = 3;
do {
System.out.println(i);
} while (i <3);
}
}
```
5. switch 语句
switch 语句用于多个条件判断,避免 if-else 语句过于臃肿。其结构为 `switch (变量) { case 值: 语句 break; ... }`。需要注意的是,每个 case 后面需要加 break 以避免执行多个 case 分支。例如:
```java
import java.util.Scanner;
public class PrintIn {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please enter your choice?");
int choice = scan.nextInt();
switch (choice) {
case 1:
System.out.printf("You entered %d", choice);
break;
case 2:
System.out.printf("You entered %d", choice);
break;
case 3:
System.out.printf("You entered %d", choice);
break;
default:
System.out.println("Bad input");
break;
}
}
}
```
6. 中断流程
Java 中的 break 和 continue 语句用于中断或继续循环。break 语句可以带标签跳出多层循环,而 continue 语句则用于跳过当前循环的剩余部分,继续下一次循环。例如:
```java
public class Loop {
public static void main(String[] args) {
int i = 2;
while (i <5) {
System.out.printf("i is %d\n", i);
if (i == 4) break;
i++;
}
}
}
```
带标签的 break 语句示例:
```java
public class Loop {
public static void main(String[] args) {
int i = 3;
break_tag:
while (i <6) {
System.out.printf("i is %d\n", i);
for (int a = 2; a <6; a++) {
if (a == 4) {
break break_tag;
}
System.out.printf("a is %d\n", a);
}
i++;
}
System.out.println("OK");
}
}
```
标签的位置决定了跳出的具体层次,标签必须用冒号声明,并紧跟在循环体之前。例如:
```java
public class Loop {
public static void main(String[] args) {
int i = 3;
for (int a = 2; a <6; a++) {
break_tag:
if (i > 0) {
if (a == 4) {
break break_tag;
}
System.out.printf("a is %d\n", a);
}
i++;
}
}
}
```
输出结果为:
```
a is 2
a is 3
a is 5
```
总结:本文通过详细的代码示例,介绍了 Java 中的控制流语句及其使用方法,帮助读者更好地理解和应用这些控制结构。