1、目标
掌握if分支结构
掌握switch分支结构
2、控制流程
2.1、什么是控制流程
流程控制用来控制程序中各语句的执行顺序
3、if判断语句
基本的if选择结构:
流程图:
使用复杂条件的if选择结构
结合运算符的优先级编写条件
最高的优先级:( )
最低的优先级:=
优先级:!> 算术运算符 > 关系运算符 > && > ||
复杂条件使用括号提高可读性
if-else选择结构
多重if结构
嵌套if语句:
4、switch判断语句
缺点:结构复杂啰嗦.
特点:条件为等值判断
语法:
常见错误:
如果需要每个case执行完后跳出,在每个case后不要忘记写break;
Case后的常量值不能相同
default块顺序可以变动,但要注意其执行顺序。通常,default块放在末尾,也可以省略
4.1switch与多重if
相同点:
都是用来处理多分支条件的结构
不同点:
switch选择结构
只能处理等值条件判断的情况
多重if选择结构
没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况
if选择结构,包括以下形式
基本if选择结构:可以处理单一或组合条件的情况
if-else选择结构:可以处理简单的条件分支情况
多重if选择结构:可以处理分段的条件分支情况
嵌套if选择结构:可以处理复杂的条件分支情况
switch选择结构
多重分支并且条件判断是等值判断的情况
4.2 字符串比较
字符串在比较时,==比较的是内存地址、
equals比较的是字符串的值
字符串为null时,表示没有在堆中开辟地址
字符串为""时,会在堆中开辟地址
练习
练习一、实现幸运抽奖
代码:
import java.util.Scanner;
// 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`,
// 然后按 Enter 键。现在,您可以在代码中看到空格字符。
public class Main {
public static void main(String[] args) {
int vipnumber;
Scanner sc = new Scanner(System.in);
System.out.println("请输入会员卡号");
vipnumber = sc.nextInt();
int a = vipnumber % 1000/100;
//获取随机数
int random = (int)(Math.random()*10);
if(a == random){
System.out.println("恭喜您获奖");
}else{
System.out.println("很遗憾,您没获奖");
}
}
}
作业
作业一、判断是否为闰年
代码:
import java.util.Scanner;
public class judgeYear {
public static void main(String[] args) {
int year;
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要判断的年份");
year = sc.nextInt();
if (year%4 == 0 && year%100!=0 || year%400==0){
System.out.println("该年是闰年");
}else{
System.out.println("该年不是闰年");
}
}
}
作业二、判断abc大小
代码:
import java.sql.SQLOutput;
import java.util.Scanner;
public class abc {
public static void main(String[] args) {
double a,b,c,temp;
Scanner sc = new Scanner(System.in);
a = sc.nextDouble();
b = sc.nextDouble();
c = sc.nextDouble();
// temp = sc.nextDouble();
if(a>b){
if (a>c){
if (b>c){
System.out.println("" + a + b + c);
}else{
System.out.println("" + a + c + b);
}
}else {
System.out.println("" + c + a + b);
}
}else {
if(b>c){
if (a>c){
System.out.println("" + b + a + c);
}else{
System.out.println("" + b + c + a);
}
}else{
System.out.println("" + c + b + a);
}
}
}
}
作业三、积分折扣
代码:
import java.util.Scanner;
public class integralScorce {
public static void main(String[] args) {
double spentm;
int scorce;
Scanner sc = new Scanner(System.in);
System.out.println("请输入消费的金额");
spentm = sc.nextDouble();
System.out.println("请输入您的会员积分");
scorce = sc.nextInt();
if (scorce>0 && scorce<=2000){
spentm *= 0.9;
} else if (scorce>2000 && scorce<=4000) {
spentm *= 0.8;
}else if (scorce>4000 && scorce<=8000) {
spentm *= 0.75;
}else if (scorce>8000) {
spentm *= 0.7;
}
System.out.println("应缴金额:" + spentm);
}
}
作业四、旺季淡季机票价格
import java.util.Scanner;
public class airTicket {
public static void main(String[] args) {
double or_cost;
int month;
String ticket_type;
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票原价");
or_cost = sc.nextDouble();
System.out.println("请输入月份");
month = sc.nextInt();
System.out.println("请输入机票类型");
ticket_type = sc.next();
if (month>=5&&month<=10){
if ("头等舱".equals(ticket_type)){
System.out.println("您的机票价格是:" + or_cost*0.9);
}else if("经济舱".equals(ticket_type)){
System.out.println("您的机票价格是:" + or_cost*0.85);
}else {
System.out.println("机票类型输入错误,请重新输入");
}
}else if (month<=4 && month>0 || month<=11 && month>10){
if ("头等舱".equals(ticket_type)){
System.out.println("您的机票价格是:" + or_cost*0.7);
}else if("经济舱".equals(ticket_type)){
System.out.println("您的机票价格是:" + or_cost*0.65);
} else {
System.out.println("机票类型输入错误,请重新输入");
}
}else {
System.out.println("月份输入错误,请重新输入");
}
}
}
作业四、计算图形面积
import java.util.Scanner;
public class form {
public static void main(String[] args) {
int num;
Scanner sc = new Scanner(System.in);
System.out.println("请选择一个形状:1、长方形 2、正方形 3、三角形 4、圆形");
num = sc.nextInt();
switch (num){
case 1:
double length,width;
System.out.println("请输入长方形的长 宽");
length = sc.nextDouble();
width = sc.nextDouble();
System.out.println("长方形的面积是" + length * width);
break;
case 2:
double side;
System.out.println("请输入正方形的长");
side = sc.nextDouble();
System.out.println("长方形的面积是" + side * side);
break;
case 3:
double height,bottom;
System.out.println("请输入三角形的底 高");
height = sc.nextDouble();
bottom = sc.nextDouble();
System.out.println("长方形的面积是" + height * bottom/2);
break;
case 4:
double r;
System.out.println("请输入圆的半径");
r = sc.nextDouble();
System.out.println("长方形的面积是" + 3.14*r*r);
break;
}
}
}