Java流程控制是Java编程语言中非常重要的一个部分,它允许程序员根据程序执行的顺序来控制代码的执行流程。在Java中,流程控制主要包括条件语句、循环语句和选择语句等。
一、条件语句
条件语句用于根据条件的真假来执行不同的代码块。Java中主要有两种条件语句:if-else语句和switch语句。
- if-else语句
if-else语句用于根据条件的真假来执行不同的代码块。其基本语法如下:
if (condition) { // 当条件为真时执行的代码块 } else { // 当条件为假时执行的代码块 }
例如,下面的代码根据变量x的值来输出不同的结果:
int x = 10; if (x > 0) { System.out.println("x是正数"); } else { System.out.println("x是负数或0"); }
- switch语句
switch语句用于根据表达式的值来执行不同的代码块。其基本语法如下:
switch (expression) { case value1: // 当表达式的值等于value1时执行的代码块 break; case value2: // 当表达式的值等于value2时执行的代码块 break; ... default: // 当表达式的值不等于任何case时执行的代码块 }
例如,下面的代码根据变量day的值来输出对应的星期几:
int day = 3; switch (day) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("输入错误"); }
二、循环语句
循环语句用于重复执行一段代码。Java中主要有三种循环语句:for循环、while循环和do-while循环。
- for循环
for循环用于重复执行一段代码,直到满足指定的条件为止。其基本语法如下:
for (initialization; condition; increment) { // 循环体(需要重复执行的代码) }
for (initialization; condition; increment) { // 循环体(需要重复执行的代码) }
int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } System.out.println("1到10的和为:" + sum);
- while循环
while循环用于重复执行一段代码,直到不满足指定的条件为止。其基本语法如下:
while (condition) { // 循环体(需要重复执行的代码) }
while (condition) { // 循环体(需要重复执行的代码) }
int i = 1; int sum = 0; while (i <= 10) { sum += i; i++; } System.out.println("1到10的和为:" + sum);
- do-while循环
do-while循环用于重复执行一段代码,至少执行一次,然后再判断是否满足指定的条件。其基本语法如下:
do { // 循环体(需要重复执行的代码) } while (condition);
例如,下面的代码使用do-while循环计算1到10的和:
int i = 1; int sum = 0; do { sum += i; i++; } while (i <= 10); System.out.println("1到10的和为:" + sum);
三、选择语句
选择语句用于根据条件来选择不同的代码块执行。Java中主要有两种选择语句:if-else语句和switch语句。
-
if-else语句已在上述介绍过,不再赘述。
-
switch语句已在上述介绍过,不再赘述。
在选择语句中,需要注意以下几点:
-
- if-else语句和switch语句可以嵌套使用;
- switch语句中的case标签必须是唯一的,但default标签可以不是;
- switch语句中的表达式类型可以是byte、short、char、int、enum类型和String类型,但不能是boolean类型;
- 如果case标签的值与表达式的值相等,则执行该case后面的代码块,直到遇到break语句或者switch语句结束。如果没有break语句,则会继续执行下一个case标签的代码块,直到遇到break语句或者switch语句结束。如果没有匹配到任何case标签,则执行default后面的代码块。