今天要讲的是JAVA中《运算符》和《分支结构,上》。在复习的同时希望也能够帮助到同样在学习java的小伙伴们。
1、运算符、
①算数运算符:+、-、*、/、%、++、--
1)%:取余/取模,余数为0即为整除
2)++/--:自增1/自减1,可在变量前,也可在变量后
1、单独使用时,前后都一样
2、被使用时,在前后都不一样
a++的值为a-------(a--同理)
++a的值为a+1----(--a同理)
②关系运算符:<、>、<=、>=、==、!=
1)>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、==(等于)、!=(不等于)
2)关系运算符的结果为boolean型,关系成立则为true,关系不成立则为false
③逻辑运算符:&&、||、!
1)逻辑运算符是建立在关系运算符基础之上的,所以逻辑运算符也是boolean型
2)&&:短路与(并且),两边都真才是真,一假则假
------当第一个条件为false时,则发生短路(后面的不执行了)
3)||:短路或(或者),两边假才是假,一真则真
-------当第一个条件为true时,则发生短路(后面的不执行了)
4)!:逻辑非(取反),非真则假,非假则真
④赋值运算符:=、+=、-=、*=、/=、%=
1)简单赋值运算符:=
2)扩展赋值运算符:+=,-=,*=,/=,%=
-----注意:扩展赋值运算符自带强转功能
-----面试题:short s=5; s=s+10;//编译错误,需要强转 s+=10;
⑤字符串连接运算符:+
1)若两边为数字,则做加法运算; 若两边出现了字符串,则做字符串连接
2)任何类型与字符串连接,结果都会变为字符串型
⑥条件运算符(三目运算符):?a:b
1)语法:boolean?a:b
2)执行过程:
-------整个条件运算是有值的,它的值要么是?号后的数a,要么是:号后的数b
-------计算boolean的值:
-------若为true,则整个表达式的值为?号后的数a
-------若为false,则整个表达式的值为:号后的数b
2、分支结构(上)
① if结构:1条路
1)语法:
if(boolean){
语句块--------------基于条件执行的语句
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块(整个结束)
若为false,则直接结束
②if...else结构:2条路
1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块1(整个结束)
若为false,则执行语句块2(整个结束)
3)说明:
语句块1和语句块2,必走其中之一-------------2选1
补充:
1. 任何复杂的业务逻辑都可以通过三种结构来实现:
- 顺序结构:从上往下逐行执行,每句必走
- 分支结构:有条件的执行某语句,并非每句必走
- 循环结构:-------------明天讲
代码:
package day03;
public class OperDemo {
public static void main(String[] args) {
/*1、算数
1)%:取模/取余,余数为0则为整除
2)++/--:自增1/自减1,可以在变量前,后
2.1)单独使用时 前后都一样
2.2)被使用时,前后不一样
a++的值为:a
++a的值为:a+1
*/
单独用
int a=5, b=5;
a++;
b++;
System.out.println(a);//6
System.out.println(b);//6
/*被使用:谁现在前面,先运算谁;无论谁在前面,原始a b 肯定发生自增
a++的值为a
++a的值为a+1
*/
int a=5,b=5;
int c=a++;
int d=++b;
System.out.println(a);//6
System.out.println(c);//5
System.out.println(b);//6
System.out.println(d);//6
int a=5,b=5;
int c=a--;
int d=--b;
System.out.println(a);//4
System.out.println(c);//5
System.out.println(b);//4
System.out.println(d);//4
/* 2.关系运算
1)>,<,>=,<=,==,!=,
2)关系运算的结果为bollean型
成立true,不成立false
*/
int a=5 , b=10 , c=5;
boolean b1=a<b;
System.out.println(b1);//true
System.out.println(a>b);//false
System.out.println(a>=b);//false
System.out.println(a<=b);//true
System.out.println(a==c);//true
System.out.println(a!=c);//false
System.out.println(a+c>b);//false
System.out.println(a%2==0);//false
System.out.println(a++>c);//false-----a=6
System.out.println(a++>c);//true------a=7
/*3、逻辑运算符
1)&&:逻辑与(并且),两边都真才是真,见false则false
---短路与:当第一个条件为false时,则发生短路,后面的不执行了
||:逻辑或(或者),两边都假才是假,见true则true
---短路或:当第一个条件为true时,则发生短路,后面不执行了
!:逻辑非(取反),非真则假,非假则真
2)逻辑运算符是建立在关系运算符之上的,结果也为boolean型
*/
int a=5,b=10,c=5;
boolean b1=a<b&&b<=c;
System.out.println(b1);//false
System.out.println(a++>c&&b>c);//false----a=6
System.out.println(a>c&&b>c);//true
System.out.println(a--<=c&&b>c);//false---a=5
int a=5,b=10,c=5;
boolean b1=a<b||b<=c;
System.out.println(b1);//true
System.out.println(a++>c||b>c);//true----a=6
System.out.println(a>c||b>c);//true
System.out.println(a--<=c||b<c);//false---a=5
int a=5,b=10,c=5;
boolean b1=!(a>b);
System.out.println(b1);//true
System.out.println(!(a<b));//false
System.out.println(!(a==c));//false
int a=5,b=10,c=5;
boolean b2=a>b&&c++<2;
System.out.println(b2);//false
System.out.println(c);//5
int a=5,b=10,c=5;
boolean b2=a<b||c++<2;
System.out.println(b2);//true
System.out.println(c);//5
/*4、赋值运算符
1)简单赋值运算符:=
2)扩张赋值运算符:+=,-=,*=,/=,%=
----注意:扩展赋值运算符,附带了强转
*/ //面试题:short s=5; s=s+10;//编译错误,需要强转 s+=10;//相当于s=(short)(s+10)
int a=5;
a+=10;
System.out.println(a);//15
a*=2;//
System.out.println(a);//30
a/=6;
System.out.println(a);//5
/*5、字符串链接运算符:
1)+:
1.1)若两边为数字,则为加法
1.2)如两边为字符串,则为字符串链接//String:字符串型,双引号中,0到多个
1.3)任何类型与字符串链接,结果都会变为字符串类型
*/
int age=21;
System.out.println("我今年"+age+"岁了");//我今年21岁了
String name ="沈志辉";
System.out.println("大家伙好啊,我叫"+name+",今年"+age+"岁了!");//大家伙好啊,我叫沈志辉今,年21岁了!
System.out.println(10+20+""+30);//3030
System.out.println(""+10+20+30);//102030
System.out.println(10+20+30+"");//60
/*6.条件运算符
1)一目:++,--,!
2)二目:+-/*%
3)语法:boolean?数1:数2
4)条件运算是有值的,取决于boolean的值
若为true,则整个表达式的结果为:号后的数字1
若为false,则整个表达式的结果为:号后的数字2
*/
int a=5,b=10;
int max=a>b?a:b;
System.out.println("max="+max);//10
int min=a<b?a:b;
System.out.println("min="+min);//5
/*补充:
任何复杂的业务逻辑都可以通过三种结构来实现
顺序结构:从上往下逐行执行,每局必走
分支结构:有条件的执行某语句,非每句必走
循环结构
*/
/*1、if结构:1条例
1)语法:
if(boolean){
语句块
}
2)执行过程:判断boolean的值:
若为true,则执行语句块
若为false,则if直接结束
*/
int num=6;//带数
if(num%2==0){
System.out.println(num+"是偶数");
}
System.out.println("继续执行...");
//2)满500打八折
double price= 501;
if(price>=500){
price*=0.8;
}
System.out.println("最终结算金额为"+price);
//3)判断年龄是否在18到50之间(包含),若在范围内则输出满足条件
int age=38;
if(age>=18 && age<=50){
System.out.println("满足条件");
}
System.out.println("继续执行");
/*if else:两种路径
1)语法:if(boolean){
语句块1 问1:语句块1和语句块2,有可能同时执行吗?-----不可能
}else{
语句块2 问2:语句块1和语句块2有可能同时都不执行吗?---不可能
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块1(整个结束)
若为false,则执行语句块2(整个结束)
3)说明:语句块1和语句块2必走其中之一
*/
//偶数、奇数的判断:
int num=1;
if(num%2==0){
System.out.println(num+"为偶数");
}else{
System.out.println(num+"为奇数");
}
//满500打八折,不满500打9折
double price=600;
if(price>=500){
price*=0.8;
}else{
price*=0.9;
}
System.out.println("衬衫的最终价格为:"+price);
//判断是否符合条件:年龄在18到50岁中间
int age=6;
if(age>=18 && age<=50){
System.out.println(age+"岁满足条件");
}else{
System.out.println(age+"不岁满足条件");
}
}
}