目录
基本的算术运算符
自增自减运算符
赋值运算符
关系运算符
逻辑运算符
三目运算符
运算符优先级
API
Scanner
基本的算术运算符
符号 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
基本与C语言的基本算术运算符一致
注意:两个整数相除结果还是整数
public static void main(String[] args){int a = 10;int b = 2;System.out.println(a + b); // 12System.out.println(a - b); // 8System.out.println(a * b); // 20System.out.println(a / b); // 5//两个整型做除法,其结果也还是整型,因为最高类型为整型int i = 5;int j = 2;System.out.println(i / j); //2//如果要得到浮点数,可以多乘一个1.0System.out.println(1.0 * i / j); // 2.5}
运行结果:
其中,“+”符号可以做连接符
- “+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。
public static void main(String[] args)
{ int a = 10;System.out.println("abc" + a); //abc10System.out.println("sweatshirt" + a + "nice"); // sweatshirt10niceSystem.out.println('a' + a + "open"); // 107open}
运行结果:
1.算术运算符有哪些?
- +、-、*、/、%
2.“/”需要注意什么,为什么?
- 如果两个整数做除法,其结果一定是整数,因为最高类型是整数。
3.“+”除了做基本数学运算,还有哪些功能?
- 与字符串做+运算时会被当成连接符,其结果还是字符串。
自增自减运算符
符号 | 作用 |
---|---|
自增:++ | 放在某个变量前面或者后面对变量自身的值加1 |
自减:-- | 放在某个变量前面或者后面,对变量自身的值减1 |
注意:++、-- 只能操作变量,不能操作字面量的
其与C语言的自增自减运算符完全一致,++、-- 如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别。
- 放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。
- 放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1
public static void main(String[] args)
{int r = 5;int rs1 = r++;int rs2 = ++r;System.out.println(rs1); //5System.out.println(rs2); //7}
运行结果:
赋值运算符
基本赋值运算符
“=”,从右边往左看。
int a = 10;
先看 "=" 右边,把数据10赋值给左边的变量a存储
扩展赋值运算符
符号 | 用法 | 作用 | 底层代码形式 |
---|---|---|---|
+= | a += b | 加后赋值 | a = (a的类型)(a + b); |
-= | a -= b | 减后赋值 | a = (a的类型)(a - b); |
*= | a *= b | 乘后赋值 | a = (a的类型)(a * b); |
/= | a /= b | 除后赋值 | a = (a的类型)(a / b) |
%= | a %= b | 取余后赋值 | a = (a的类型)(a % b) |
注意:扩展的赋值运算隐含了强制类型转换。
关系运算符
符号 | 例子 | 作用 | 结果 |
---|---|---|---|
> | a > b | 判断a是否大于b | 成立返回true、不成立返回false |
>= | a >= b | 判断a是否大于或者等于b | 成立返回true、不成立返回false |
< | a < b | 判断a是否小于b | 成立返回true、不成立返回false |
<= | a <= b | 判断a是否小于或者等于b | 成立返回true、不成立返回false |
== | a == b | 判断a是否等于b | 成立返回true、不成立返回false |
!= | a != b | 判断a是否不等于b | 成立返回true、不成立返回false |
- 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或者false。
注意:判断是否相等一定是 "==",千万不要把 "==" 误写成 "=".
逻辑运算符
- 把多个条件放在一起运算,最终返回布尔类型的值:true、false。
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
& | 逻辑与 | 2>1&3>2 | 多个条件必须都是true,结果才是true;有一个是false,结果就是false |
| | 逻辑或 | 2>1|3<5 | 多个条件中只要有一个是true,结果就是true; |
! | 逻辑非 | !(2>1) | 取反:你真我假,你假我真。!true==false、!false==true |
^ | 逻辑异或 | 2 > 1 ^ 3 >1 | 前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true |
&& | 短路与 | 2 > 10 && 3 >2 | 判断结果与“&”一样,过程不同:若左边为false,右边则不执行。 |
|| | 短路或 | 2 >11 || 3<5 | 判断结果与“|”一样,过程不同:若左边为true,右边则不执行。 |
注意:在java中,“&”、“|”:无论左边是false还是true,右边都要执行。
由于&&、|| 运算效率更高、在开发中用的更多
三目运算符
- 格式:条件表达式 ? 值1 : 值2 ;
- 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
运算符优先级
- 在表达式中,哪个运算符先执行后执行是要看优先级的。
括号级别最高,逗号级别最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。
API
如果有一个需求:
要在程序中,提示用户通过键盘输入自己的姓名、年龄,并能在程序中收到这些数据,怎么解决?
我们并不需要自己研发技术来实现,Java已经写好了实现程序,我们直接调用进行编写和使用即可。
JDK中包含着:
API(Application Programming Interface:应用程序编程接口)
- Java写好的程序,程序员可以直接拿来调用。
Scanner
使用Scanner就可以实现我们刚才的需求,Scanner接收用户键盘输入的数据,需要三个步骤:
①:导包:告诉程序去JDK的哪个包中找扫描器技术(在IDEA中一般会自动导包)
②:代码部分:表示得到键盘扫描器对象(东西)。
③:代码部分:等待接收用户输入数据。
注意:
- String、String在JDK中的Java.lang包下
- Lang包不需要我们导包,是默认的包。
import java.util.Scanner;public class Test
{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入您的年龄:");int age = sc.nextInt(); //等待键盘输入System.out.println("年龄是: "+ age); //输出System.out.println("请输入您的名称:");String name = sc.next(); //等待键盘输入System.out.println("欢迎: "+ name);}
}
年龄输入:20
名称输入:张三
运行结果:
该部分代码后面会再学习到,现在大体做一个了解
1.API是什么?API文档是什么?
- Application Programming Interface,应用程序编程接口:Java写好的程序,程序员可以直接调用。
- Java提供的程序使用说明书。
2.Java程序中如何实现接收用户键盘输入的数据?
- 使用Java提供的Scanner来完成,步骤如下:
- 1、导包:import java.util.Scanner;
- 2、编写代码得到扫描器对象:Scanner sc=new Scanner(System.in)
- 3、编写代码等待接收用户输入的数据:int age= sc.nextInt() String name = sc.next()
END
学习自:黑马程序员——JavaSE入门课程