Java基础-类型转换与常用运算符。
1.自动类型转换,即类型范围小的变量可以直接赋值给类型范围大的变量
类型的转换规律:byte -->short-->int-->long-->float-->double
char-->int
byte a =12; int b = a; System.out.println(b);//12
2.表达式的自动类型转换 ,即小范围类型自动转换成较大的类型才进行运算
byte a =10; int b = 10; double c =1.0; double rs = a+b+c; System.out.println(rs);//21.0 byte i = 10; byte j = 20; //byte k =i+j; 错误 因为结果已经变成int类型 int k = i+j; System.out.println(k);//30
3.强制类型转换
注意事项!!
1).大范围数据类型转换成小范围数据类型会发生报错
2).强制转换过程中可能会造成数据的丢失。 如浮点型转成整形会造成小数部分的数值的丢失
byte b = (byte) a; System.out.println(b);//20 System.out.println(a);//20 int i = 1500; byte j = (byte) i; System.out.println(j);//-36 数据丢失 //浮点型转成整形会丢失小数部分 double score = 99.5; int it = (int) score; System.out.println(it); //99
4.java的基本的运算符,包括 +、-、*、/、%。
int a =10; int b =3; System.out.println(a + b); System.out.println(a * b); System.out.println(a - b); System.out.println(a / b); //值为整数 若要为小数,则要在a*1.0 System.out.println(a *1.0 / b); //值为整数 若要为小数,则要在a*1.0 System.out.println(a % b); //取余数
5.数字的拆分输出
假设一个数为5896
它的个位数等于 5896除以10的余数
它的十位数等于 5896除以10的商 除以10 的余数
它的百位数等于 5896除以100的商 除以10的余数
它的千位数等于 5896除以1000的商 除以10的余数
int data =5896; //个位 int ge =data %10; //十位 int shi = data/10 %10; //百位 int bai = data / 100 %10; //千位 int qian = data /1000 %10; System.out.println(ge);//6 System.out.println(shi);//9 System.out.println(bai);//8 System.out.println(qian);//5
6.+ 符号与运算符运算的时候是用作连接符,其结果为字符串;
口诀:能运算就相加,不能运算就在一起
int a =5; System.out.println("abc" + 'a');//abca System.out.println("abc" + a);//abc5 System.out.println(5 + a);//10 System.out.println("abc" + 5 + 'a');//abc5a System.out.println(a + 'a');//102 System.out.println(a + " " + 'a');//5a System.out.println(a + 'a' + "asdd");//5aasdd System.out.println("sdsa" + a + 'a');//sasa5a System.out.println("sddd"+(a + 'a'));//sddd102
7.自增自减运算符
++变量自身加1
--变量自身减1
注意!! 只能操作变量不能操作字面量
若是在表达式中
++或--放在变量前面,则变量先进行+1或-1,再使用
反之,则是先使用然后在加一减一
//++变量自身加一 //--变量自身减一 //++ --只能操作变量,不能操作字面量 int a = 10; // a++; //a=a+1 ++a;//a=a+1没差别 System.out.println(a);//11 int b =10; --b; System.out.println(b);//9 //不是单独使用 在表达式中 //放在前面,x先加一或减一,再使用 int i =10; int j =++i; System.out.println(i);//11 System.out.println(j);//11 //放在后面,先使用然后在加一或减一 int n =10; int m= n++; //第一步 m=n=10 然后n=n+1=11 System.out.println(n);//11 System.out.println(m);//10 System.out.printf("-----------拓展---------"); int k =3; int p= 5; //k 3 4 5 4 //p 5 4 3 4 //rs 3 + 5 - 4 + 4 - 5 + 4 +2 int rs =k++ + ++k - --p + p-- - k-- + ++p +2; System.out.println(k); //4 System.out.println(p);//4 System.out.println(rs);//9
8.赋值运算符 = += -= *= /= %=
int a = 10; int b =200; a +=b;//a=a+b System.out.println(a);//210
int m =10; int n=23; m-=n;//m=m-n 其余符号同里 System.out.println(m); //-13
9.关系运算符 返回布尔类型
int a =10; int b = 10; boolean rs = a == b; System.out.println(rs);//t System.out.println(a == b);//t System.out.println(a != b);//f System.out.println(a > b);//f
10.逻辑运算符 & | !^
double size = 9.8; double storage = 6; //尺寸大于6.95 内存大于8GB System.out.println(size >= 6.95 & storage >= 8);//与 System.out.println(size >= 6.95 | storage >= 8);//或0 } System.out.println(!true); //两个一样结果才为true System.out.println(true ^ true); System.out.println(false ^ true); System.out.println("-----------&& & || | 的区别"); int a = 10; int b = 20; System.out.println(a > 100 && ++b > 10); //左边为false 右边不执行 System.out.println(a > 100 & ++b > 10); System.out.println(b); int i = 10; int j =20 ; System.out.println(i > 2 || ++j > 10); //左边为true,右边不执行 System.out.println(i > 2 | ++j > 10); System.out.println(j);
11.三元运算符
double score =98; String re=score >=60 ? "考试通过" : "挂科"; System.out.println(re); //案例:需要从两个数中找出最大值 int a = 10; int b =1000; int rs = a>b ? a:b; System.out.println(rs); //练习 System.out.println("-----------------------------------"); int i =10; int j =30; int k = 50; //找出两个整数的较大值 int temp = i>j ? i:j; System.out.println(temp); //拿临时变量与第三个变量相比较 int rsmax = temp > k ? temp:k; System.out.println(rsmax); System.out.println("-------------拓展知识-----------------"); int remax = i > j ? (i >k ? i : k) : (j > k ? j : k); //首先 i与j相比较 若i大于j 则输出第一个括号里面的内容,若i大输出i,k大输出k //其次 若i小于k ,则输出第二个括号的内容 System.out.println(remax);
12.键盘录入技术 通过查找API(应用程序编程入口)
//1.导包 //2.new一个键盘扫描对象 Scanner sc = new Scanner(System.in); //调用sc对象的功能等待用户接入数据 //这个代码等待用户输入数据,按下回车键接收数据 System.out.println("请输入您的年龄:"); int age = sc.nextInt(); System.out.println("您的年龄是:" +age); System.out.println("请输入您的名字:"); String name = sc.next(); System.out.println("您的名字是:"); System.out.println("欢迎" +age +"岁的" + name +"到来!!!" );
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)