流程控制是程序设计语言不可缺少的一部分,Java提供了以下的流程控制语句。
if语句
如果满足某种条件,就做某些工作。比如如果今天是周末,那我就在家休息。当不满足条件条件时,if里的语句就得不到执行。
public class Demo {
public static void main(String[] args) {
String today = "星期一";
if (today == "星期六" || today == "星期天"){
System.out.println("今天周末,我休息");
}
}
}
if-else语句
if-else语句含有分支,当满足了if里的条件时就执行if里的语句,否则执行else里的语句。比如如果今天是周末,那我就在家休息,否则我就去工作。
public class Demo {
public static void main(String[] args) {
String today = "星期一";
if (today == "星期六" || today == "星期天"){
System.out.println("今天周末,我休息");
}else {
System.out.println("今天不是周末,我需要上班");
}
}
}
if-else if-else语句
当程序有很多分支的时候可以使用多个if-else组合。比如学生成绩80-100优良、60-80良好、0-60不及格。
public class Demo {
public static void main(String[] args) {
int grade = 70;
if (grade > 80 && grade <= 100){
System.out.println("成绩优良");
}else if (grade >=60 && grade <= 80){
System.out.println("成绩良好");
}else {
System.out.println("不及格");
}
}
}
if-else嵌套
当程序有多层判断条件的时候可以使用。比如学生买票可以半价,18岁以下的学生免费,成人全价。
public class Demo {
public static void main(String[] args) {
String job = "学生";
int age = 16;
if (job == "学生"){
if (age < 18){
System.out.println("免费");
}else {
System.out.println("半价");
}
}else {
System.out.println("全价");
}
}
}
switch语句
switch语句是一个分支语句,判断一个变量值与一系列值中的某一个值是否相等。比如今天是星期几就输出相应要做的事情。
public class Demo {
public static void main(String[] args) {
String today = "星期一";
switch (today){
case "星期一":
System.out.println("学习");//学习
break;
case "星期二":
System.out.println("扫地");
break;
case "星期三":
System.out.println("去玩");
break;
case "星期四":
System.out.println("写作业");
break;
case "星期五":
System.out.println("看电影");
break;
case "星期六":
System.out.println("游乐园");
break;
case "星期天":
System.out.println("鬼屋");
break;
default:
System.out.println("不存在这一天");
}
}
}
switch里的变量可以是byte、short、int或char,在Java 7的时候也开始支持String类型了。case接的值的数据类型必须和switch里的变量数据类型是一样的,而且它必须是一个值或者常量。switch语句中的break语句用来跳出switch,如果没有break,就会继续执行下面的语句,直到出现了break。default分支通常放在最后,在没有case值与变量值匹配的时候执行,它不需要break。当然也可以没有这个分支。switch语句与if-else if else语句类似,某些情况下两者是互通的。switch的执行流程是先进行case匹配,匹配成功则执行case下的语句,再根据有没有break决定是否跳出switch,匹配不成功就执行default分支,没有default分支就直接跳出switch。