0130axy

黑马打卡第三天!!加油加油

算术运算符

运算符和表达式

int c=a+b; +是运算符

算数运算符 + - * / %(取模 取余)

//在代码运算中有小数存在时,有可能结果不精确

System.out.println(10/3);//3
System.out.println(10.0/3);//3.333333333335

//%取模取余,实际也是做除法运算,不过得到的是余数

//应用场景

  • 用取模判断 A是否可以被B整除
  • A%2 判断A是否为偶数
  • 3个玩家斗地主判断先给谁发牌

练习:数值拆分:键盘录入一个三位数,将其拆分为个位十位 百位后,打印在控制台

公式总结:个位 :数值%10 十位 数值/10%10 百位 数值/100%10 千位 数值/1000%10

+

数字相加 不同数据类型的变量相加

类型转换的分类:

隐式转换

(取值小变换为取值大/程序自动转换)

Byte<short<int<long<float<double

两种提升规则

  • 取值范围小的和取值范围大的进行运算,小的会提升为大的,再进行运算;

  • byte short char 三种类型的数据在计算时,都会直接提升为int,然后再进行运算

强制转换

(把一个取值范围大的数值赋值给取值范围小的变量是不允许的,如果这样做需要进行强制转换)

double a=12.3;
int b=(int)a;

字符串的”+“

+出现字符串则为字符串连接符

连续加为从左到右逐个参与

字符相加

System.out.println('a'+12);//109

自增自减

++/--无论是在变量前还是变量后都是将变量增1/减1

++a--a

参与运算时int b=a++;先用后加 int b=++a;先加后用

赋值运算符

=

+=加后赋值a+=b等同于a=a+b; 隐藏强制类型转化

-=/ /= *= %=

关系运算符

==判断左右是否相等 成立为true 不成立为false

!= 判断左右两边是否不相等

< <= > >=

结果为boolean类型 =与==不相同,一个为赋值符号,一个为判断符号

逻辑运算符

&逻辑与 |逻辑或 ^逻辑异或 !逻辑非

短路逻辑运算符(与单个运算符结果一样,效率不同)

&& 而且 如用户名和密码 只有用户名正确才判断密码

|| 短路或

三元运算符

定义一个变量记录两个整数的较大值

可以进行判断,根据判断的结果得到不同的内容

格式:关系表达式?表达式1:表达式2;

三元运算符的结果一定要被使用.

运算符优先级

()优先于所有


作业day03

知识点

运算符

题目1(训练)

身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:

​ 儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2

​ 女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2

现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?

训练提示

  1. 已知的父母身高如何用代码体现?

  2. 题目中的公式如何转化为代码?

    `double

解题方案

  1. 使用变量的定义和算术运算符完成本题

操作步骤

  1. 定义小数变量代表父亲身高

  2. 定义小数变量代表母亲身高

  3. 通过儿子身高计算方式计算儿子身高

  4. 通过女儿身高计算方式计算女人身高

参考答案

double fatherHeight =177;
double motherHeight = 165;
double sonHeight = (fatherHeight+motherHeight)*1.08/2;
double daughtHeight =(fatherHeight*1.08+motherHeight)/2

题目2(训练)

红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。那么红茶和绿茶现在的钱一样多,请问对么?

训练提示

  1. 用什么知识点来计算她们现在的钱有多少?
  2. 如何对比两个人的钱数?

解题方案

  1. 使用赋值运算符和算术运算符计算各自的钱,使用比较运算符对比大小

操作步骤

  1. 定义红茶妹妹原来的钱为整数变量
  2. 定义绿茶妹妹原来的钱为整数变量
  3. 使用赋值运算符和算术运算符计算其现有的钱
  4. 使用比较运算符对数值做出比较

参考答案

int money1 = 21;
int money2 = 24;
money1=money1*2+3;
money2=money2*2;
resule = monney1 == money2;
System.out.println(result);

题目3(综合)

某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?

训练提示

  1. 有两种购买方式,一种是不使用优惠价,另一种是使用优惠价。分别计算花费后,对两种方式的花费作对比。

解题方案

  1. 使用算术运算符、赋值运算符和三元运算符联合完成本题

操作步骤

  1. 使用算术运算符求出不使用优惠时的总价
  2. 使用三元运算符判断总价是否满足打折条件,并求出折后总价
  3. 使用算术运算符求出使用优惠价时的总价
  4. 使用三元运算符判断最终更合算的购买方式和花费

参考答案

public class Test03{
	public static void main(String[] args){
		int fish = 24;
		int nuts = 8;
		int rice = 3;
		int fish2 = 16;
		double method1 = (double)(fish + nuts +rice)*0.8;
		double  method2 = fish2 + nuts +rice;
		double result = method1>method2? method2:method1;
		System.out.println(result);		
	}
	
	
	
}

该题解答有误,应先判断是否满足优惠条件再进行计算!

题目4

看代码说结果,不要去运行。

System.out.println(2.0*(5/2)); 4

  1. 4
  2. 4.0
  3. 5
  4. 5.0
  5. 以上答案都不对

题目5:

看代码说结果,不要去运行。TomasZhang

String firstName = "Tomas";
String familyName = "Zhang";
打印firstName + familyName 之后是什么结果?

题目6:

需求:

数字6是一个真正伟大的数字,键盘录入两个整数。

如果其中一个为6,最终结果输出true。

如果它们的和为6的倍数。最终结果输出true。

其他情况都是false。
import java.util.Scanner;

public class Test02{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		//输入两个整数
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		boolean result = num1 == 6 || num2 == 6 || (num1 + num2) % 6 == 0;
        System.out.println(result);		
	}
	
	
	
	
	
}

题目7:

需求:

​ 键盘录入一个三位数,求这个三位数每一位的数字和。

​ 举例:

​ 键盘录入123。那么每一位数字相加为:1 + 2 + 3,和为:7。

import java.util.Scanner;
public class Test04{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		//输入一个三位数
		System.out.println("输入一个三位数");
		int num = sc.nextInt();
		int a = num%10;//个位
		int b = num/10%10;
		int c = num/100%10;
		System.out.println(a+b+c);
	}
}

posted on 2025-02-19 18:20  win_axy  阅读(58)  评论(0)    收藏  举报

导航