前言:在java中的整数型字面量值默认为int类型,浮点型字面量值默认为double类型 。
1.运算符
- Java 语言支持如下运算符:
算术运算符: +,-,*,/,%,++,–
字符串连接运算符:+
关系(比较)运算符: >,<,>=,<=,!=
逻辑运算符: !,& , | , &&,||
赋值运算符: =,+ =,- =,*=,/
条件运算符
位运算符
1.算术运算符
public static void main(String[] args){
int i1 = 10,i2 = 20;
int i = i1++;
System.out.println("i="+i);
System.out.println("i1="+i1);
i = ++i1;
System.out.println("i="+i);
System.out.println("i1="+i1);
}
`# 10.逻辑运算符
/*
逻辑运算符
& | ! ^ 可以参与逻辑运算还可以参与位运算
逻辑运算: true & false
位运算: 二进制bit位运算 6 & 3
&&(短路与) ||(短路或)
*/
public class OperateDemo3 {
//java程序的入口/主方法/主线程
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = 6;
int d = 20;
/* //& 左右都为true 结果为true 遇到第一个false时,后面的表达式继续执行
System.out.println(a>b&b<c);//true & true = true
System.out.println(a>b&b>c);//true & false = false
System.out.println(a<b&b>c);//false & false = false
//&&左右都为true 结果为true 遇到第一个false时,就发生短路,后面的表达式就不在执行了
System.out.println(a>b&&b<c);//true && true = true
System.out.println(a>b&&b>c);//true && false = false
System.out.println(a<b&&++b>c);//false && false = false
System.out.println(b);*/
//| 只要有一为true 结果为true
System.out.println(a>b|b<c);//true | true = true
System.out.println(a>b|b>c);//true | false = true
System.out.println(a<b|b>c);//false | false = false
//||只要有一为true 结果为true 只要遇到第一个true 后面的表达式就不行了
System.out.println(a>b||b<c);//true || true = true
System.out.println(a>b||++b>c);//true || false = true
System.out.println(a<b||b>c);//false || false = false
System.out.println(b);
/* //!
System.out.println(!(a>b));
//^ 异或运算 相同为false 不同为true
System.out.println(a>b^b<c);//true ^ true = false
System.out.println(a>b^b>c);//true ^ false = true
System.out.println(a<b^b>c);//false ^ false = false*/
}
}
2.比较运算符
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注意:比较运算符“==”不能误写成“=” 。
# 9.比较运算符
/*
比较运算符
==
!= 数值,布尔,引用类型
> < >= <= 适用于数值类(char)
instanceof 类型检测
*/
public class OperateDemo2 {
//java程序的入口/主方法/主线程
public static void main(String[] args) {
//==
int a = 10;
int b = 5;
boolean c = true;
boolean d = false;
String e = "abc";
String f = "efg";
System.out.println(a==b);
System.out.println(c==d);
System.out.println(e==f);
//!=
System.out.println(a!=b);
System.out.println(c!=d);
System.out.println(e!=f);
/* System.out.println(e>f);
System.out.println(c>e);*/
Object x = 10;
//Object类型可以表示任何类型,但是实际表示的是哪种类型呢?
System.out.println(x instanceof Integer);
}
}
3.逻辑运算符:
&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
异或( ^ ):当左右都为true时,结果为false。
理解:异或,追求的是“异”!
# 10.逻辑运算符
/*
逻辑运算符
& | ! ^ 可以参与逻辑运算还可以参与位运算
逻辑运算: true & false
位运算: 二进制bit位运算 6 & 3
&&(短路与) ||(短路或)
*/
public class OperateDemo3 {
//java程序的入口/主方法/主线程
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = 6;
int d = 20;
/* //& 左右都为true 结果为true 遇到第一个false时,后面的表达式继续执行
System.out.println(a>b&b<c);//true & true = true
System.out.println(a>b&b>c);//true & false = false
System.out.println(a<b&b>c);//false & false = false
//&&左右都为true 结果为true 遇到第一个false时,就发生短路,后面的表达式就不在执行了
System.out.println(a>b&&b<c);//true && true = true
System.out.println(a>b&&b>c);//true && false = false
System.out.println(a<b&&++b>c);//false && false = false
System.out.println(b);*/
//| 只要有一为true 结果为true
System.out.println(a>b|b<c);//true | true = true
System.out.println(a>b|b>c);//true | false = true
System.out.println(a<b|b>c);//false | false = false
//||只要有一为true 结果为true 只要遇到第一个true 后面的表达式就不行了
System.out.println(a>b||b<c);//true || true = true
System.out.println(a>b||++b>c);//true || false = true
System.out.println(a<b||b>c);//false || false = false
System.out.println(b);
/* //!
System.out.println(!(a>b));
//^ 异或运算 相同为false 不同为true
System.out.println(a>b^b<c);//true ^ true = false
System.out.println(a>b^b>c);//true ^ false = true
System.out.println(a<b^b>c);//false ^ false = false*/
}
}
4.赋值运算符
符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处
理。支持连续赋值。
扩展赋值运算符: +=, -=,*=, /=,%=
`# 11.赋值运算
/*
赋值运算符
= 注意在赋值时,值的类型与声明的变量类型一致.
牵扯到数据类型的转换(基本类型之间) 自动转换,强制转换
扩展赋值运算
+= 会自动隐式转换为原本的类型(例如: int i=1;i+=0.1; 结果i=1)
-=
*=
/=
%=
*/
public class OperateDemo4 {
//java程序的入口/主方法/主线程
public static void main(String[] args) {
byte a = 12;//隐式的将int12 转为 byte
int b = a;
short c = (short)b;
float d = 10.5f;
int e = (int)(c+b+d);//混合运算时,数据类型默认会转为表达式中最大的类型
/* int x = 5;
long y = 10;
x += y; // x=x+y
System.out.println(x);*/
short s = 3;
//s=s+2; s = short+ int = int
s+=2;//隐式转换 short + int = short
}
5.条件运算符(三元运算符)
语法:
(条件表达式)? 表达式1:表达式2;
为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;
表达式1和表达式2为同种类型
# 12.条件运算符
/*
条件运算符(3元运算符)
类型 结果 = (条件表达式)?表达式1:表达式2
必须返回一个结果,结果的类型与定义结果类型一致
if(条件){
ssss
}else{
ssss
}
*/
public class OperateDemo5 {
//java程序的入口/主方法/主线程
public static void main(String[] args) {
int score = 70;
String res = (score>=60)?"考试及格":"挂科";
System.out.println(res);
}
}
6.位运算
常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,
优化算法,运算效率最高.
`# 13.位运算(了解)
/*
位运算符, 二进制的bit位的运算
<<
>>
>>>
&
|
^
~
*/
public class OperateDemo6 {
//java程序的入口/主方法/主线程
public static void main(String[] args) {
// << 010 左移1位 100 乘法
//int a = 2;
//System.out.println(a<<2);
//带符号
//>> 0000 0011 右移 1位
//>> 1000 0011 右移 1位
//int b = -6;
//System.out.println(b>>1);
//>>> 无符号右移 0100 0011 右移 1位 最高位只需要补0
//System.out.println(b>>>1);
/*
& 按位与
0000 0110
& 0000 0011
0010
*/
/*int a = 6;
int b = 3;
System.out.println(a&b);*/
/*
| 按位或
0000 0110
| 0000 0011
0111
*//*
int a = 6;
int b = 3;
System.out.println(a|b);*/
/*
^ 按位或
0000 0110
^ 0000 0011
0101
0000 0101
0000 0110
0011
*/
int a = 6;
int b = 3;
a=a^b;
b=a^b;
a=a^b;
System.out.println(a);
System.out.println(b);
//~ 按位取反
}
`
2.表达式的运算顺序
3.控制台输入
使用标准输入串System.in
使用Scanner取得一个字符串或一组数字
在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以 取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转 换成布尔型。
例:
System.out.print(“输入”);
Scanner scan = new Scanner(System.in);
String read = scan.next ();
System.out.println(“输入数据:”+read);
在使用Scanner对象时,需要在文件头带入 java.util.Scanner;
an.next ();
System.out.println(“输入数据:”+read);
在使用Scanner对象时,需要在文件头带入 java.util.Scanner;
写法为: import java.util.Scanner
结果:
代码如下:
public class ScannerDemo {
public static void main(String[] args) {
//例:在控制台随便输入一个名字
Scanner sc = new Scanner(System.in);//创建一个Scanner类的对象,并且赋给将其一个Scanner变量sc
String st = sc.next();//因为名字是一个字符串,所以要创建一个String类,变量sc通过调用方法后名字存在st中
System.out.println("---------------------------");//这行代码用来区分一下
System.out.println(st);//验证一下是不是已经存进st中
}
}
最后,觉得有用的话,可以点赞、收藏,加关注哟,要不下次就找不见了哟!