一.控制选择结构语句
- if、if else
- switch
(一).if语句
- if语句又被称为分支语句、条件控制语句
1.if语句的语法结构:四种编写方式
- if(布尔表达式){java语句}
- if(布尔表达式){java语句}else{java语句}
- if(布尔表达式){java语句}else if{java语句}
- if(布尔表达式){java语句}else if{java语句}else{java语句}
- 有两种带有else分支,这两种方是可以保证有分支执行。
- 所以的控制语句都是可以嵌套使用的,代码格式要完整(也就是缩进)
- if语句的分支中只有一条java语句的话,大括号可以省略,但是不推荐。
2.if语法实训案例1
- 根据学生成绩判断等级
- 要求:
- 【90-100】A
- 【80-90】B
- 【60-80】C
- 【0-60】D
- 这里还有一种需要学习的方法:
3.if语句实训案例2
- 如果是雨天,女士就带一把女士雨伞,男士就带一把男士雨伞,如果是晴天且温度超过30度,女士就带一把女士遮阳伞,男士就带一把男士遮阳伞。
package practice;
import java.util.Scanner;
public class practice03 {
public static void main(String[] args) {
System.out.println("说明1:1代表下雨天,0代表晴天");
System.out.println("说明2:1代表男士,0代表女士");
System.out.println("说明3:天气温度为数字");
Scanner n = new Scanner(System.in);
System.out.print("请输入性别:");
int sex = n.nextInt();
System.out.print("请输入当前天气的状况:");
int weather = n.nextInt();
if (weather == 1) {
// System.out.println("下雨天");
if (sex == 1) {
System.out.println("带一把男士雨伞");
} else if (sex == 0) {
System.out.println("带一把女士雨伞");
} else {
System.out.println("您输入错误");
}
} else if (weather == 0) {
// System.out.println("晴天");
System.out.print("请输入天气温度:");
double tem = n.nextInt();
if (tem > 30) {
if (sex == 1) {
System.out.println("带一把男士遮阳伞");
} else if (sex == 0) {
System.out.println("带一把女士遮阳伞");
} else {
System.out.println("您输入错误");
}
}
} else {
System.out.println("您输入的天气错误");
}
}
}
- 运行的结果为:
4.接受用户键盘输入
- system.out.println(); 负责向控制台输出【从内存到控制台】
- 接受键盘输入,从“键盘”到“内存”
- 步骤:先创建键盘扫描对象,在调用Scanner对象的next()方法开始接受用户键盘输入
import java.util.Scanner;
public class practice01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//String str = scanner.next();
int num = scanner.nextInt();
System.out.println("结果是:" + (num + 6));
}
}
/*
总结:
第一步:
Scanner scanner = new Scanner(System.in);
第二步:
String str = S.next();
或者
int num = scanner.nextInt();
*/
- 输出的结果为:
5.用户键盘输入实训案例
package practice;
import java.util.Scanner;
public class practice02 {
public static void main(String[] args) {
/*
实训题:假设系统给定一个人的年龄根据年龄判断这个人处于哪个阶段
【0-18】儿童
【19-55】中年
【56-100】老年
*/
//接受键盘输入:年龄[输入时必须是数字]
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
System.out.println("年龄为:" + age);
//根据要求进行逻辑判断
String str = "老年";
if (age < 0 || age > 100) {
str = "输入错误,请重新输入";
} else if (age <= 55) {
str = "中年";
} else if (age <= 18) {
str = "儿童";
}
System.out.println(str);
}
}
- 输出的结果为:
6.关于Switch语句
(1)介绍
- 属于选择结构,也是分支语句
- Switch(int或string类型的字面值或变量){case int 或String类型的字面值或变量}
(2)原理
- 原理1:Switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行。按照自上而下的顺序依次匹配。
- 原理2:匹配成功的分支执行,分支当中最后有“break”语句的话,整个Switch语句终止。
- 原理3:匹配成功的分支执行,分支当中没有“break”语句的话,直接进入下一个分支执行(不进行匹配),这种现象称为case穿透现象
- 原理4:所有分支都没有匹配成功,当有default的语句的话,会执行default分支当中的程序。
(3)注意的一些问题
Switch后面和case后面只能是int或string类型的数据,不能是其他类型。
当然byte,short,char也可以直接写到Switch和case后面,因为它们可以进行自动转换为int类型的了
case可以合并
- 注意一些报错的情况
- 解决编译报错的一些写法:
(4)实训案例一
- 输入数字返回对应的星期值
- 代码展示:
package practice;
import java.util.Scanner;
public class practice04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字:");
int num = scanner.nextInt();
switch (num) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("您输入的数字不对,请重新输入");
}
}
}
- 输出的结果展示:
- 第二种写法
(5)实训案例二
- 实现计算机中的 + 、- 、* 、/ 运算
- 代码展示:
package practice;
import java.util.Scanner;
public class practice05 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("简单的计算系统");
System.out.print("请输入第一个数字:");
int num1 = scanner.nextInt();
System.out.print("请输入运算符号:");
String operator = scanner.next();
System.out.print("请输入第二个数字:");
int num2 = scanner.nextInt();
int result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
case "%":
result = num1 % num2;
break;
default:
System.out.println("输入错误,请重新输入");
}
System.out.println("运算结果为:" + num1 + operator + num2 + " = " + result);
}
}
- 输出结果展示:
(6)实训案例三
- 假设系统给定学生成绩,请判断该考生的成绩等级:
【0-59】不及格
【60-79】及格
【80-100】优秀 - 代码展示:
package practice;
public class practice06 {
public static void main(String[] args) {
//double score = 96.5;
//double score = 76.5;
double score = 16.5;
int grade = (int)(score / 10);
switch (grade) {
case 9 : case 10:
System.out.println("优秀");
break;
case 6 : case 7:
System.out.println("及格");
break;
case 4: case 5:
System.out.println("不及格");
break;
case 2: case 3:
System.out.println("不及格");
break;
case 0: case 1:
System.out.println("不及格");
break;
default:
System.out.println("输入不正确,请重新输入!");
}
}
}
注:这里的case 0: case 1:这个数字只能是相近的两个数字,多了就不行
- 输出结果展示:
(一)、for循环
1.语法结构:
for(初始化表达式;布尔表达式;更新表达式){是需要重复执行的代码片段}
2.执行原理:
- 初始化表达式、布尔表达式、更新表达式都不是必须的【但是两个分好是必须的】
- 初始化表达式最先执行,并且在整个for循环中只执行一次
- 布尔表达式必须是true、false,不能是其它值。
3.实训案例
(1)实训案例一
(二)、 while
(三)、do …while
三.改变控制语句顺序1、break
2、continue