分支结构
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循环