01-Java语言基础(比较运算符&逻辑运算符)
比较运算符运算完要么是true要么是false
对于
System.out.println(3<2);
false
逻辑运算符用于连接两个boolean表达式
&:与
|:或
System.out.println(3<2&3>2);
False
System.out.println(3<2|3>2);
True
02- Java语言基础(逻辑运算符)
^:异或
true^true = false
true^false = true
false^ture = ture
false^false = false
异或运算规律:^符号两边相同则返回false,不同则返回true
!:非
!true=false
&&:AND(短路)
false&&true=true
需要两边为true结果才为true
&&和&运算结果一样,但是运算过程有点区别
&&:当左边为false,右边不参与运算直,返回结果,通常情况比较高效。
&:无论左边结果是什么,右边都需要运算才返回结果。
||:OR(短路)
false||true=false
只要有一边为true结果就为true
||和|的区别跟&&和&的区别类似
03- Java语言基础(位运算符)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/adde399ac01a62acfe1c0a6e79341933.png)
位运算中,1代表真0代表假
与运算:
6&3=2 在二进制中每一位情况
0000-0110
& 0000-0011
0000-0010
所得结果为二
或运算结果类似
异或算法原则:只有在两个比较的位不同时其结果是1,否则结果为0
即“两个输入相同时为0,不同则为1
^异或运算有个规律
一个数的异或同一个数两次,结果还是这个数。
6^3=5
6^3 ^3=6
这个规律可以用来加密和解密
04- Java语言基础(移位运算符)
3<<2这个过程在二进制中
0000-0000 0000-0000 0000-0000 0000-0011
左移两位<<2
0000-0000 0000-0000 0000-0000 0000-0011
此时下划线的两位数据已经丢失
最后做补全工作,在数据后面添加两位0(红色)
0000-0000 0000-0000 0000-0000 0000-001100
结果:0000-0000 0000-0000 0000-0000 0000-1100=十进制的12
6>>1=3 -6>>1=-3
无符号右移:数据在进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。
05- Java语言基础(位运算符练习)
高效运算2*8
方法:2<<3
对于运算两个整数变量的值互换:
int a=3,b=5;
方法1int c=a; a=b; b=c;(需要开辟临时变量)
:
方法2:a = a+b; b=a-b; a=a-b;(若两个整数过大会造成强制转换)
方法3:a=a^b: b=a^b: a=a^b:(最高效)
06- Java语言基础(三元运算符-举例)
class OperateText
{
public static void main(String[] args)
{
int x=0,y;
y= (x>1)?100:200;
System.out.println(“y=”+y);
}
}
07- Java语言基础(语句-if)
if(条件表达式)
{
执行语句;
}
if(条件表达式)
{
执行语句;
}
else//否则
{
执行语句;
}
if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
……
else//否则
{
执行语句;
}
08- Java语言基础(局部代码块)
每个代码都有他的作用范围,即在大括号范围里。每一对大括号里的代码都是一个代码块。
好处:节省空间,局部代码块可以定义局部变量,结束后释放内存。
09- Java语言基础(if语句练习-星期)
class IfText {
/*
需求:根据用户指定的具体数据,判断数据对应的星期。
1-星期-Monday
思路:
用户输入无法获取但是那只是具体数据的一种获取手段而已。
而我们要做的功能仅仅是对用户指定的数据进行对应星期的打印而已。
所以具体的数据不确定,完全可以用变量来表示。
变量的值有用户决定。
因为数据不确定,所以要对数据进行判断
*/
public static void main(String[] args) {
int week=6;
if(week==1)
System.out.println(week+"对应的星期为星期一");
else if(week==2)
System.out.println(week+"对应的星期为星期二");
else if(week==3)
System.out.println(week+"对应的星期为星期三");
else if(week==4)
System.out.println(week+"对应的星期为星期四");
else if(week==5)
System.out.println(week+"对应的星期为星期五");
else if(week==6)
System.out.println(week+"对应的星期为星期六");
else if(week==7)
System.out.println(week+"对应的星期为星期七");
else
System.out.println(week+"没有对应的星期");
}
}
结果:的星期为星期六
10- Java语言基础(if语句练习-季节)
class IfText1 {
/*
根据用户输入的月份给出对应的季节
*/
public static void main(String[] args) {
int month=6;
if(month==3||month==4||month==5)
System.out.println(month+"月季是春季");
else if(month==6||month==7||month==8)
System.out.println(month+"月季是夏季");
else if(month==9||month==10||month==11)
System.out.println(month+"月季是秋季");
else if(month==12||month==1||month==2)
System.out.println(month+"月季是冬季");
else
System.out.println(month+"没有对应的季节");
}
}
结果:是夏季
11- Java语言基础(语句-switch)
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值1:
执行语句;
break;
default://违约
执行语句;
break;
}
class SwitchDemo {
public static void main(String[] args) {
int x=5;
switch(x+1)//byte short int char
{
case 1:
System.out.println("a");
break;
case 2:
System.out.println("b");
break;
case 3:
System.out.println("c");
break;
default:
System.out.println("d");
break;
}
int a=3,b=2;
char opr='-';
switch(opr)//byte short int char
{
case '+':
System.out.println(a+b);
break;
case '-':
System.out.println(a-b);
break;
case '*':
System.out.println(a*b);
break;
case '/':
System.out.println(a/b);
break;
}
}
}
结果:
d 1
12- Java语言基础(语句-switch-练习)
class SwitchText {
public static void main(String[] args) {
/*
用户输入对应的星期
*/
int week=5;
switch(week)//byte short int char
{
case 1:
System.out.println(week+"对应的是星期一");
break;
case 2:
System.out.println(week+"对应的是星期二");
break;
case 3:
System.out.println(week+"对应的是星期三");
break;
case 4:
System.out.println(week+"对应的是星期四");
break;
case 5:
System.out.println(week+"对应的是星期五");
break;
case 6:
System.out.println(week+"对应的是星期六");
break;
case 7:
System.out.println(week+"对应的是星期日");
break;
default:
System.out.println("没有对应的星期");
break;
}
}
}
结果:5对应的是星期五
13- Java语言基础(if语句和switch语句的区别)
if和switch的应用
if:
1对具体的值进行判断
2对区间判断
3对运算结果是boolean类型的表达式进行判断
switch:
1对具体的值进行判断
2值得个数通常是固定得。对于几个固定值判断,建议使用switch,因为switch语句会将具体的答案加载进内存,效率相对高一点。
14- Java语言基础(语句-while dowhile))
while(条件表达式)
{
执行语句:
}
do{
执行语句;
}
while(条件表达式)
do while 的特点:无论循环体是否满足至少执行语句一次
15- Java语言基础(while练习-累加思想 计数器思想)
如下代码:
int x=1;//记录参加加法的数据
int sum=0;//记录每次加法的和
while(x<=100)
{
sum=sum+x;
}
这种while循环可以实现数的累加,同样,累减 累乘 累除也一样
while循环也可以做计时器如:
int x=1;
int count=0;//记录每次加法的和
while(x<=100)
{
if(x%6==0)
count++;
}
在固定多次循环种符合条件的就记录。
这些是while循环通常的用法
16- Java语言基础(语句-for)
for(初始化表达式;循环表达式;循环后的操作表达式)
{
执行语句;
}
17- Java语言基础(循环结构的使用场景)
当对某些代码执行很多次时,需要循环结构完成。
当对一个条件判断一次时可以用if语句,多次可以用while语句