分支结构
1、基本概述
当需要进行条件判断的时候,并且根据条件是否成立来选择执行某一段代码的时,需要分支结构。
if结构
1、语法
if(条件表达式){
语句块1; -----多条语句的集合,也可以是一条语句。
}
语句块2;
2、执行流程
判断条件表达式是否成立
假如条件成立,则执行语句块1,执行语句块2
假如不成立,则执行语句块2
演示英雄选择
import java.util.Scanner;
public class TestIf {
public static void main(String[] args) {
System.out.println("1、盲僧 2、劫 3、嘉文");
System.out.println("请选择:");Scanner sc = new Scanner(System.in); int num = sc.nextInt(); if(num == 1) { System.out.println("掌控自己掌控敌人"); } if(num == 2) { System.out.println("无形之刃最为致命"); } if(num == 3) { System.out.println("犯我德邦者,虽远必诛!"); }//如果接收的参数没有符合的,则输出下面的语句块2.如果没有语句块2,则不作输出 System.out.println("超出选择"); }
}
if-else 分支结构
1、语法
if(条件表达式){
语句块1;
}
else{
语句块2;
}
语句块3
2、执行流程
判断条件是否成立
若成立,执行语句块1,执行语句块3;
不成立,执行语句块2,执行语句块3;
演示一个简单的考试成绩判断
import java.util.Scanner;
public class TestIfelse {
public static void main(String[] args) {
//演示一个简单的考试成绩判断
System.out.println("请输入您的考试成绩:");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();if(score >= 60) { System.out.println("成绩合格"); }else { System.out.println("不合格"); } }
}
if-else if-else分支结构
1、语法
if(条件表达式1){
语句块1;
}else if(条件表达式2){
语句块2;
}else{
语句块3;
}
语句块4;
2、执行流程
判断条件表达式1是否成立
成立,执行语句块1,执行语句块4
不成立,判断条件表达式2是否成立
成立,执行语句块2,执行语句块4
不成立,执行语句块3,执行语句块4
演示一个简单的买购票系统
public class TestIfelseIfelse { public static void main(String[] args) { //提示用户输入身份信息 System.out.println("请输入您的身份信息:"); Scanner sc = new Scanner(System.in); //使用变量接收身份信息 String str = sc.next();
if("军人".equals(str)) { System.out.println("免票"); }else if("学生".equals(str)) { System.out.println("半票"); }else { System.out.println("全票"); } }
}
swich-case分支结构
1、语法
swich(){
case 字面值1:
语句块;
break;
case 字面值2:
语句块2;
break;
default:
语句块3;
}
语句块4;
2、执行流程
计算变量/表达式的数值 判断是否匹配字面值1;
如果匹配,则执行语句块1,执行语句块4;
如果不匹配,则判断是否匹配字面值2;
匹配,则执行语句块2,执行语句块4;
不匹配,则执行语句块3,执行语句块4;
演示一个简单的买购票系统
import java.util.Scanner;
public class SwitchCase {
public static void main(String[] args) {
//提示输入身份
System.out.println("请输入身份:1、军人 2、学生 ");//接收信息 Scanner sc = new Scanner(System.in); int num = sc.nextInt(); switch(num){ case 1: System.out.println("军人乘车免票"); break; case 2: System.out.println("学生乘车半票"); break; default: System.out.println("群众乘车全票"); break; } }
}
循环结构
当需要在某个场合进行条件的判断,有所选择的执行一段代码,需要分支结构
当需要在某个场合重复去做某一件事,需要循环结构
for循环
1、语法
for(初始表达式;条件表达式;修改初始表达式的表达式){
循环体1;
}
循环体2;
2、执行流程
执行初始表达式=》判断条件表达式是否成立
成立 执行循环体1=》修改初始条件测表达式=》判断条件表达式是否成立
不成立 执行循环体2
注意:
for(初始表达式;条件表达式;修改初始表达式的表达式){
循环体1;
}
for循环的括号和大括号中声明的变量都叫做块变量,作用域只限于for循环,而再方法中声明的变量称之为局部便变量,作用域包含整个方法
循环输入5个商品的价格,并计算平均价格
public class TestFor { public static void main(String[] args) { Scanner h = new Scanner(System.in); int x=0; for(int a=1;a<=5;a++) { System.out.println("请输入第"+a+"个商品的价格:"); int num = h.nextInt(); x+=num; } System.out.println("商品总价格为:"+x);//商品总价格为:15 System.out.println("商品平均价格为:"+x/5);//商品平均价格为:3
}
}
while循环
1、语法
while(条件表达式){
循环体;
}
语句块
2、执行流程
判断条件表达式是否成立
成立,执行循环体 =》判断条件表达式是否成立
不成立,执行语句块
3、注意
while循环和for循环是可以互补的
while循环通过使用明确循环条件但不明确循环册数的场合中
for循环通常使用再明确循环次数/范围的场合中使用
for(;;){} 和 while(true){} 都是表示无限循环的方式
While循环打印1-10
public class TestWhile {
public static void main(String[] args) {
int i = 0;
while(i<=10) {
System.out.println(i);
i++;
}
System.out.println("跳出while循环");
}
}
do-while
1、语法
do{
循环体;
}while(条件表达式);
语句块;
2、执行流程
执行循环体=》判断条件表达式是否程立
成立。执行循环体=》判断条件表达式是否成立
不成立,执行语句块
3、注意
do-while循环通常使用再至少需要执行一次循环体的场合中,而while循环可以不执行
do-while打印1-10
public class TestDoWhile {
public static void main(String[] args) {
int i=1;
do {
System.out.println(i);
i++;
}while(i<=10);//do-while循环结构在小括号的后面有分号,其他循环则没有
}
}
三个循环的区别
执行顺序
while 循环: 先判断,再执行
do-while循环:先执行,再判断
for循环;先判断,再执行
适用情况
循环次数确定的情况,通常选用for循环
循环次属不确定的情况,通常选用while或者do-while循环