Java基础入门(二)
1.运算符
1.1 算术运算符
在Java中,一共有5种算术运算符,分别是:+(加), -(减), *(乘), /(除), %(取模),其中前四种运算方法与我们小学学过的四则运算一致,后一种则表示求两个数相除之后求取余数.
需要注意的是:
1.除法符号两边都是整数,计算结果也是一个整数(整除)
System.out.println(10/4);//2
2.除法符号两边有一边是小数,计算结果也是小数
System.out.println(10/4.0);//2.5
3.byte,short,char类型在参与计算的时候,会自动把自己提升为int类型
4.浮点数(小数),是不精确的,拿不精确的数参与计算,得到的结果更加不精确
System.out.println(2.6-2);//0.6000000000000001 无限接近于0.6
1.2 字符的+操作
在计算机存储过程中中,每个字符在底层都是由一个数字存储,所以字符在参与+操作时,会使用字符底层的数字进行加法运算
System.out.println('B'+2);//66+2=68
System.out.println('d'-3);//100-3=97
System.out.println((char)97);//a
System.out.println('中'+0);//20013
System.out.println((char)20013);//中
以下常用字符和数字的对应关系:
// ‘A’ 65 A-Z是连续的
// ‘a’ 97 a-z是连续的
// ‘0’ 48 0-9是连续的
1.3 字符串的+操作
字符串可以和任意的数据类型相加,结果还是一个字符串(字符串连接)
System.out.println("你好"+true);//你好true
System.out.println("你好"+1);//你好1
所以我们经常字符串的+操作的拼接作用来展示结果
int a = 10;
int b = 20;
System.out.println("a:"+a);//a:10
System.out.println("b:"+b);//b:20
1.4 赋值运算符
赋值运算符分为基本的赋值运算符和扩展的赋值运算符两种:
基本的赋值运算符: = 把等号右边的值赋值给等号左边的变量;
扩展的赋值运算符: +=, -=, *=, /=, %=, 把运算符左右两边的数先进行+ - * / % 的操作,再把结果赋值给左边的变量;
int a = 10;
a+=20;//就相当于 a= a+20;
需要注意的是:
1.+=, -=, *=, /=, %=运算符左边必须是变量,不能是常量
2.+=,-=,*=,/=,%=运算符中隐含一个强制类型转换
byte cc = 10;
cc+=20;//就相当于(byte)(bb+20);
1.5 自增自减运算符
自增运算符: ++,本身+1;自减运算符: --,本身-1;多用在循环中
注意:
++和–单独使用:运算符写在变量的前后结果是一样的;
int a = 10;
a++;
System.out.println("a:"+a);//a:11
++和–与其他运算符混合使用:
++(–)写在变量前边,先把变量的值加(减)1,然后使用改变后的值参与运算;
++(–)写在变量后边,先使用变量原来的值参与运算,运算结束后在把变量的值加(减)1;
int aa = 10;
//--与输出语句混合使用
System.out.println(aa--);//10==>先打印aa原来的值10,在把aa进行--
1.6 关系运算符
作用:用于比较两个数,结果是一个布尔值
==等于 !=不等于 >大于 <小于 >=大于等于 <=小于等于
int a = 10;
int b = 20;
int c = 10;
System.out.println(a==b);//false
System.out.println(a==c);//true
System.out.println(a!=b);//true
System.out.println(a!=c);//false
注意事项: 等于号是==,千万不要把 == 写成 =(赋值).
1.7 逻辑运算符
作用:用于连接布尔表达式,表达式的结果是一个布尔值
&: 与运算符:有false则false
| (回车上边shift+):或运算符:有true则true
!: 取反:非真则假,非假则真
boolean b1 = true;
boolean b2 = (100+20)-30<50;
boolean b3 = true;
System.out.println("b2:"+b2);//b2:false
System.out.println(b1 & b2);//false
System.out.println(b1 & b3);//true
System.out.println(b1 | b2);//true
System.out.println(b1 | b3);//true
System.out.println(!b1);//false
System.out.println(!b2);//true
短路与和短路或
&&:短路与,符号左边是false,则不在执行右边,可以直接确定结果
| |:短路或,符号左边是true,则不在执行右边,可以直接确定结果
&&和||和&和|的运算结果是一样的,但&&和| |可以提高效率.
int a = 10;
int b = 20;
//System.out.println(++a>20 & --b<30);//false & true ==>false
//System.out.println("a:"+a);//a:11
//System.out.println("b:"+b);//b:19
System.out.println(++a>20 && --b<30);//false && 左边能确定结果,右边不在执行 ==>false
System.out.println("a:"+a);//a:11
System.out.println("b:"+b);//b:20
1.8 三元运算符
元,指的是参与计算的变量个数,如:一元:1个数参与计算 ++a, --b;二元:2个数参与计算 a+b ,a>b, a && b,三元运算符:3个数参与计算,作用是获取两个数中的最大值或最小值,或者比较两个数的大小.
格式: 关系表达式? 表达式1:表达式2;
int a = 10;
int b = 20;
//获取a和b两个数的最大值
int max = a>b? a : b;
2.流程控制语句
2.1 if语句
if语句是最常用的判断语句,其有三种语句格式
2.1.1 if语句的第一种格式
int a = 10;
int b = 20;
//判断a和b是否相等
if(a==b){//false
System.out.println("a等于b!");
}
2.1.2 if语句的第二种格式
//键盘输入一个整数,判断整数是否为一个偶数 a%2==0
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = sc.nextInt();
if(a%2==0){
System.out.println(a+"是一个偶数!");
}else{
System.out.println(a+"是一个奇数!");
}
2.1.3 if语句的第三种格式
用于多个条件的判断
//程序从控制台接收一个百分制的分数
Scanner sc= new Scanner(System.in);
System.out.println("请输入您的分数:");
int score = sc.nextInt();
//使用if语句对分数进行判断
//90分—100分:打印:优秀
if(score>=90 && score<=100){
System.out.println("优秀");
}else if(score>=70 && score<=89){
//70 – 89分,打印:良好
System.out.println("良好");
}else if(score>=60 && score<=69){
//60 – 69分,打印:及格
System.out.println("及格");
}else if(score>=0 && score<=59){
//0 – 59分,打印:不及格
System.out.println("不及格");
}else{
//其它情况,打印:输入的分数不正确!
System.out.println("输入的分数不正确!");
}
2.2 switch语句的基本使用
switch语句也是常用的判断语句,多用于在多个值中选择一个执行
switch (week){
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 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("您输入的值有误!");
break;
}
如果不加break,将出现穿透现象,即可能打印多个结果.
穿透的原理是当case中的语句执行完毕,而没有break时, 程序会无条件的执行后续的case或default中的语句,直到遇到break语句或整个switch语句结束为止.有时我们也会利用穿透优化程序:
switch (month){
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("您输入有误!");
break;
}
好了,今天的学习就到这里了!!!