分支语句

本文介绍了Java中的基本运算符使用方法,包括算术运算、字符串连接及三目运算等,并通过实例展示了条件分支流程控制的应用,如if语句、多路分支与switch-case结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运算符

0 % 5 = 0
3 % 5 = 3
4 % 6 = 4
-2 % 5 = -2

字符串连接运算

  1. 数字计算
    ‘+’号的两端是数字(含字符类型)
  2. 字符串连接
    ‘-‘号的一端是字符串的时候,按照字符串连接计算

一种运算符有多种功能的现象,称为“运算符重载”,Java中只有“+”是重载的运算符。

注意:
1. 计算次序, 从左到右计算
2. 注意 字符不是字符串,字符按照数值计算!!!

案例:

int a = 100;
//String 代表一串字符: 字符串
String str = "a=" + a;
// 计算过程:a 转换为 “100”
//  将 "a=" 与 "100" 连接
//  结果 "a=100"
System.out.println(str); //"a=100"
/*
 * 常见问题
 * 1. 计算次序, 从左到右计算
 * 2. 注意 字符不是字符串,字符按照
 *   数值计算!!!
 */
String s1 = "A"+1+2+3+"";
String s2 = 1+2+3+"A"+"";
System.out.println(s1);//A123
System.out.println(s2);//6A
String s3 = 'A'+1+2+3+"";
System.out.println(s3);//

三目运算(条件表达式)

根据条件得到不同的结果

这里写图片描述

案例:

/*
* 分页总数计算:
 * 根据总行数rows,每页4行,计算总页数
 */
Scanner in = new Scanner(System.in);
System.out.print("输入总页数:");
int rows = in.nextInt();
//        判断是否整除
int pages= rows%4==0 ? rows/4 : rows/4+1;
System.out.println(pages); //6

案例二:判断年份是否为闰年

这里写图片描述

Scanner in = new Scanner(System.in);
System.out.print("公元年份:");
int year = in.nextInt();

boolean leap=((year%4==0)&&!(year%100==0))||
            (year%400==0);
System.out.println(leap);

分支流程控制

顺序流程控制
编写一个收银柜台收款程序,根据商品单价、购买数量以及收款金额计算并输出应收金额和找零。

案例:

//读取用户输入信息:单价,数量,金额
Scanner in = new Scanner(System.in);
System.out.print("请输入单价:");
double price = in.nextDouble();
System.out.print("输入数量:");
double num = in.nextDouble();
System.out.print("输入金额:");
double pay = in.nextDouble();
//计算:1. 计算总价 2.计算找零
double total = price * num;
double sub = pay - total;
//输出计算结果
System.out.println("商品金额:"+total);
System.out.println("已支付:"+pay);
System.out.println("找零:"+sub);

if语句

语法:

if(条件表达式){
    语句块
}
当 条件表达式 为true的时候执行 语句块

这里写图片描述

需求:如果总价大于500就打8折

案例:

//如果总价 大于 500 就打8折
if(total >= 500){
    //System.out.println(total);
    //total = total * 0.8;//总价 打8折
    total *= 0.8;
}

if …… else 语句

原理:

这里写图片描述

需求:考虑程序异常情况,如:收款金额小于应收金额若收款金额大于等于应收金额,则计算找零后输出;若收款金额小于应收金额,输出错误提示信息。

案例:

if(pay >= total){
    //正常支付
    double sub = pay-total;
    System.out.println("商品金额:"+total);
    System.out.println("已经支付:"+pay);
    System.out.println("找零:"+sub); 
}else{//金额不足
    //拒绝支付
    System.out.println("金额不足!");
}

多路分支

提示:对路分离语句实际上是if语句嵌套的一种简化形式

这里写图片描述

案例:根据学员的成绩输出等级:
- A(成绩大于等于90分);
- B(成绩小于90分且大于等于80分);
- C(成绩小于80分且大于等于60分);
- D(成绩小于60)。

Scanner in = new Scanner(System.in);
System.out.print("输入分数:");
int score = in.nextInt();//分数
//多路分支语句(if语句嵌套)
if(score>=90){//90以上
    System.out.println("A");//A 级别 
}else if(score>=80){//90到80之间
    System.out.println("B");
}else if(score>=60){//80到60之间
    System.out.println("C");
}else{
    System.out.println("D");
}
if(总价<50){
//...
}else if(总价<200){
    //...
}else if(总价<500){
    //...
}else{
    //...
}

switch case 语句

switch:开关 case:情况

多路分支语句,特点是根据整数进行分支。
break用于跳出switch结构

这里写图片描述

/*
* 利用switch case 对路分支处理
 * 分数等级
 */
//从控制台读取分数
Scanner in = new Scanner(System.in);
System.out.print("输入分数:");
int score = in.nextInt();
switch(score/10){//10 9 8 7 6 5 .. 0
case 10: //100
case 9:  //99 ~ 90
    System.out.println("A"); break;
case 8:  //89 ~ 80
    System.out.println("B"); break;
case 7:  //79 ~ 70
case 6:  //60 ~ 60
    System.out.println("C"); break;
default: //59 ~ 0 
    System.out.println("D");
}

经典案例:

/*
 * 菜单解释器
 */
//1 显示菜单信息
System.out.println("请选择功能");//...
System.out.println("1. 添加学生");
System.out.println("2. 删除学生");
System.out.println("3. 登记分数");
System.out.println("4. 批量导入");
System.out.println("0. 退出");
System.out.print("请选择(0-4):");

//2 等待用户的输入
Scanner in = new Scanner(System.in); 
int n = in.nextInt();

//3 解释用户的输入
switch(n){
case 1://解释了添加学员的功能
    System.out.println("添加学员");
    break;
case 2://解释删除学生
    System.out.println("删除学员");
    break;
case 3:
    System.out.println("输入分数");
    break;
case 4:
    System.out.println("批量导入");
    break;
case 0:
    System.out.println("退出!"); 
    break;
default:
    System.out.println("错误命令");
}

重点:区别 switch 与 if else if …

  1. switch 只能根据整数条件进行分支
    if else if else 可以根据任意条件进行多路分支。switch使用范围没有 if 广泛!
  2. switch 的运算性能好于 if else
    如果分支条件是整数,一定使用switch case。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值