数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。
当
+
操作中出现字符串时,这个+
是字符串连接符,而不是算数运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
"123" + 123 = "123123"
+
操作时,从左到右 逐个 执行。1 + 99 + "年黑马"
= 100年黑马
System.out.println(3.7 + "abc");
output
"3.7abc"
System.out.println("abc" + true);
output
"abctrue"
System.out.println("中" + "abc" + true);
output
"中abctrue"
int age = 18;
System.out.println("我的年龄是" + age + "岁");
System.out.println("我的年龄是" + "age" + "岁");
output
"我的年龄是18岁"
"我的年龄是age岁"
System.out.println(1 + 2 + "abc" + 2 + 1);
output
"3abc3"//错了
"3abc21"
**需求:**键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
output
代码
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
//键盘录入一个三位数,获取其中的个位、十位、百位
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
//2.获取个位、十位、百位
//公式
//个位:数字 % 10
//十位:数字 / 10 % 10
//百位:数字 / 10 % 10
//...
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
System.out.println("个位是:" + ge);
System.out.println("十位是:" + shi);
System.out.println("百位是:" + bai);
}
}
byte
shot
char
三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
那么,在运算中字符是怎样提升的??
字符的+
操作
当字符 +
字符 / 字符 +
数字时,会把字符通过ASCII码表
查询到对应的数字再进行计算。
System.out.println(1 + 'a'); //98
System.out.println('a' + "abc"); //"aabc"
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 数字相加 / 字符串相加 / 字符相加 |
- | 减 | 同上(字符串只有+ 操作!) |
* | 乘 | 与× 等同 |
/ | 除 | 与÷ 等同 |
% | 取模、取余 | 获取的是两个数据做除法的余数 |
/
和 %
的区别:两个数据做除法,/
取结果的商,%
取结果的 余数。整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。