目录
程序流程控制介绍:在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。1. 顺序控制;2. 分支控制;3. 循环控制;
顺序控制
介绍:程序从上至下逐行执行,中间没有任何中断和跳转。是程序默认执行方式。
Java中定义变量时采用合法的前向引用。如:变量先声明再使用。
分支控制
介绍:让程序有选择地执行,分支控制有三种:单分支,双分支,三分支。
单分支、双分支、多分支
- if 单分支:当条件表达式为true时,执行 {} 中的代码块,表达式为false时不执行。如果 {} 中只有一条语句,可以省略 {} 例如:if (a>0) a+1;
- if-else 双分支:当条件表达式为true时,执行代码块1,表达式为false时执行代码块2。语法:if(条件表达式) { 代码块1 } else { 代码块2 }
- if -else if 多分支:不管有多少分支只能有一个执行入口,且多分支可以没有else,如果所有的条件表达式都不满足,则没有执行入口。如果有else,在所有条件表达式都不成立情况下执行else。
判断闰年:(单双分支)
import java.util.Scanner;
public class fenzhi {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int yesr = sc.nextInt();
if ((yesr%4==0 && yesr%100!=0)||yesr%400==0){
System.out.println(yesr + "是闰年");
}else{
System.out.println(yesr + "不是闰年");
}
}
}
判断成绩:(多分支)
class achieve {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
double res = sc.nextDouble();
if (res<60){
System.out.println("不及格");
}else if (res>=60 && res<70){
System.out.println("及格");
}else if (res>=70 && res<80){
System.out.println("良好");
}else if (res>=80 && res<100){
System.out.println("优秀");
}else{
System.out.println("神");
}
}
}
单分支、多分支程序流程图
单分支流程图:
双分支流程图
多分支流程图:
嵌套分支
介绍:在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外 层分支。 最好不要超过3层(可读性差)。
嵌套分支案例:
import java.util.Scanner;
public class S {
/**
* 分数大于8.0进入决赛,分男女决赛
* @param args
*/
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数");
double score = sc.nextDouble();
if (score>8.0){
System.out.println("进入决赛!");
char sex = sc.next().charAt(0);//获取char类型!!
if (sex == '男'){
System.out.println("男子组决赛");
}else if (sex == '女'){
System.out.println("女子组决赛");
}else{
System.out.println("信息有误!");
}
}else {
System.out.println("OUT");
}
}
}
案例2:
import java.util.Scanner;
public class S {
/**4~10月为旺季;
* 成人(18+)60,儿童(<18)30,老年(60+)
* 其余月份淡季:
* 成人40,其余20
* @param args
*/
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入季度");
int sea = sc.nextInt();
if (sea >= 4 && sea <= 10) {
System.out.println("旺季,请输入年龄");
int age = sc.nextInt();
if (age < 18 && age >= 1) {
System.out.println("旺季儿童票:30");
} else if (age >= 18 && age < 60) {
System.out.println("旺季成人票:60");
} else if (age >= 60) {
System.out.println("忘记老年票:20");
} else {
System.out.println("请输入正确的年龄!");
}
} else if ((sea < 4 && sea >= 1) || (sea > 10 &