java基础——第三章 选择结构

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;
}

}
}
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值