目录
Java选择结构
Java选择结构主要有两种:一种是if语句、一种是switch语句。
1.1 if语句
if语句主要有三种形式:if语句、if-else语句、if-else if-else语句
1.1.1 if语句
在Java中,我们用if语句来控制程序的执行流程
if语句的基本语法代码如下:
public class Test {
public static void main(String[] args) {
if(/*判断表达式*/){
/*需要执行的语句*/
}
}
}
如以上代码所示,在关键词“if"后面小括号里的内容是判断表达式,为boolean(布尔)类型的变量。若这一布尔类型变量的值为true,则程序会执行后面的大括号内需要执行的语句。否则不会执行。
1.1.2 if-else语句
我们也可以使用if-else语句来控制程序的执行流程
public class Test {
public static void main(String[] args) {
if(/*判断表达式*/){
/*需要执行的语句1*/
}else{
/*需要执行的语句2*/
}
}
}
如以上代码所示,在关键词“if"后面小括号里的内容是判断表达式,为boolean(布尔)类型的变量。若这一布尔类型变量的值为true,则程序会执行后面的大括号内需要执行的语句1。否则程序将会执行else后面的大括号内需要执行的语句2。
1.1.3 if-else if-else语句
我们还可以使用if-else if-else语句,根据多个条件来控制程序的执行流程
public class Test {
public static void main(String[] args) {
if(/*判断表达式1*/){
/*需要执行的语句1*/
}else if(/*判断表达式2*/){
/*需要执行的语句2*/
}else if{
......
else{
/*需要执行的语句3*/
}
}
}
如以上代码所示。在关键词“if"与"else if"后面小括号里的内容是判断表达式,为boolean(布尔)类型的变量。若if后的判断表达式的值为true,则程序执行后面的大括号内需要执行的语句1。否则将会对else if后的判断表达式的值进行判断,若为true,则程序将会执行else if后的大括号内需要执行的语句2,然后计算第二个else if语句,以此类推。若if与全部的else if后的语句都为false,则程序会执行else后需要执行的语句。
1.2 switch语句
在Java中,switch语句是一种单条件多分支的开关语句。
public class Test {
public static void main(String[] args) {
switch(/*表达式*/){
case /*常量1*/:
/*代码1*/
break;
case /*常量2*/:
/*代码2*/
break;
case /*常量3*/:
/*代码3*/
break;
case /*常量4*/:
/*代码4*/
break;
default:
/*代码5*/
}
}
}
如以上代码所示,程序运行时,先计算switch后的小括号里的表达式的值,若该值与某一个case后面的表达式相等,程序就会执行该case后的语句,直到语句中出现break。若该值不与任何case值相等,程序就会执行default后的语句。若某一个case语句中未出现break,则程序执行此语句后将会执行后续的case语句直到程序中出现break。
程序运行实例——判断闰年问题
年份能被4整除且不能被100整除,或能被400整除的,是闰年(2月有29天)
代码如下:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int year;
Scanner scanner=new Scanner(System.in); //定义scanner对象
year=scanner.nextInt(); //通过scanner输入年份的值
if((year % 4 == 0 && year % 100 != 0 ) ||year % 400 == 0){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"不是闰年");
}
}
}
程序运行实例——判断季节问题
代码如下:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int month;
Scanner scanner=new Scanner(System.in); //定义scanner对象
month=scanner.nextInt(); //通过scanner输入月份的值
switch (month){
case 3:
case 4:
case 5:
System.out.println("春天到了!");
break;
case 6:
case 7:
case 8:
System.out.println("夏天到了!");
break;
case 9:
case 10:
case 11:
System.out.println("秋天到了!");
break;
case 12:
case 1:
case 2:
System.out.println("冬天到了!");
break;
default:
System.out.println("请输入1-12中的任意一个数");
break;
}
}
}