运算符
算数运算符
运算符 |
运算规则 |
范例 |
结果 |
+ |
正号 |
+3 |
3 |
+ |
加 |
2+3 |
5 |
+ |
连接字符串 |
“中”+“国” |
“中国” |
- |
负号 |
int a=3;-a |
-3 |
- |
减 |
3-1 |
2 |
* |
乘 |
2*3 |
6 |
/ |
除 |
5/2 |
2 |
% |
取余 |
5/2 |
1 |
++ |
自增 |
int a=1;a++/++a |
2 |
-- |
自减 |
int b=3;a--/--a |
2 |
注: + 在连接字符串时,只有直接与字符串相加才会转成字符串。
/ 当两边为整数时,取整数部分。当其中一边为浮点型时,按正常规则相除。
% 为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。整数做被除数,0不能做除数,否则报错
++ -- 自增自减运算符
例如:a=5;
b=++a; a先自增,后赋值给b 结果 a=6,b=6
b=a++; a先赋值,后自增 结果 a=6,b=5
总结:对于自增自减运算:前自增表达式值+1,后自增表达式值不变
赋值运算符
运算符 |
运算规则 |
范例 |
结果 |
= |
赋值 |
int a=2 |
2 |
+= |
加后赋值 |
int a=2,a+=2 |
4 |
-= |
减后赋值 |
int a=2,a-=2 |
0 |
*= |
乘后赋值 |
int a=2,a*=2 |
4 |
/= |
整除后赋值 |
int a=2,a/=2 |
1 |
%= |
取模后赋值 |
int a=2,a%=2 |
0 |
比较运算符
运算符 |
运算规则 |
范例 |
结果 |
== |
相等于 |
4==3 |
False |
!= |
不等于 |
4!=3 |
True |
< |
小于 |
4<3 |
False |
> |
大于 |
4>3 |
True |
<= |
小于等于 |
4<=3 |
False |
>= |
大于等于 |
4>=3 |
True |
注: = 表示赋值运算符 是将右边的值赋给左边
== 表示相等 判断两边的值是否相等
逻辑运算符
运算符 |
运算规则 |
范例 |
结果 |
& |
与 |
false&true |
False |
| |
或 |
false|true |
True |
^ |
异或 |
true^flase |
True |
! |
非 |
!true |
Flase |
&& |
短路与 |
false&&true |
False |
|| |
短路或 |
false||true |
True |
注:&和&&的区别:
单个& 左边无论真假,右边都计算
双个&& 左边为假,右边不计算
| 和 || 的区别:
单个| 左边无论真假,右边都计算
双个 || 左边为真,右边不计算
运算符优先级别
优先级 |
描述 |
运算符 |
1 |
括号 |
()、[] |
2 |
正负号 |
+、- |
3 |
自增自减,非 |
++、--、! |
4 |
乘除,取余 |
*、/、% |
5 |
加减 |
+、- |
6 |
移位运算 |
<<、>>、>>> |
7 |
大小关系 |
>、>=、<、<= |
8 |
相等关系 |
==、!= |
9 |
按位与 |
& |
10 |
按位异或 |
^ |
11 |
按位或 |
| |
12 |
逻辑与 |
&& |
13 |
逻辑或 |
|| |
14 |
条件运算 |
?: |
15 |
赋值运算 |
=、+=、-=、*=、/=、%= |
16 |
位赋值运算 |
&=、|=、<<=、>>=、>>>= |
引用数据类型 Scanner类 Random类
引用数据类型的使用前首先创建对象 数据类型 变量名 = new 数据类型();
每种引用数据类型都有其功能,我们可以调用该类型实例的功能。 变量名.方法名();
Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
int i = sc.nextInt(); 用来接收控制台录入的数字
String s = sc.next(); 用来接收控制台录入的字符串
Random类
public int nextInt(int maxValue) 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble() 产生[0,1)范围的随机小数,包含0.0,不包含1.0。
import导包:java.util.Random
创建实例格式:Random 变量名 = new Random();
程序结构
if语句
if (条件语句){
执行语句;
……
}
if....else...语句
if (判断条件){
执行语句1
……
}else{
执行语句2
……
}
if…else if…else语句
if (判断条件1) {
执行语句1
} else if (判断条件2) {
执行语句2
}
...
else if (判断条件n) {
执行语句n
} else {
执行语句n+1
}
Switch语句
switch(表达式){
case 值1:
执行代码块1
break;
case 值2:
执行代码块2
break;
case 值n:
执行代码块n
break;
default:
默认执行的代码
}
注:在switch语句中的表达式只能是byte、short、char、int类型的值,如果传入其它类型的值,程序会报错。但上述说法并不严谨,实际上在JDK5.0中引入的新特性enum枚举也可以作为switch语句表达式的值,在JDK7.0中也引入了新特性,switch语句可以接收一个String类型的值。
循环结构
while语句
while(循环条件){
执行语句
………
}
do......while语句
do {
执行语句
………
} while(循环条件);
注:如果循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而do…while循环的循环体还是会执行一次。
for循环语句
for(初始化表达式; 循环条件; 操作表达式){
执行语句
………
}
for循环执行流程图解
for(① ; ② ; ③){
④
}
第一步,执行①
第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步
第三步,执行④
第四步,执行③,然后重复执行第二步
第五步,退出循环
双重for循环打**练习
import java.util.Scanner;
public class qiuhe
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
for(int i=1;i<=n;i++){ //外层循环控制行
for(int j=1;j<i+1;j++){ //内层循环控制列
System.out.print("*");
}
System.out.println('
');
}
}
}
break语句
在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
continue 语句
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
标记
当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想使用break语句跳出外层循环则需要对外层循环添加标记
例如:
public class BreakDemo02 {
public static void main(String[] args) {
int i, j; // 定义两个循环变量
waiceng: for (i = 1; i <= 9; i++) { // 外层循环
for (j = 1; j <= i; j++) { // 内层循环
if (i > 4) { // 判断i的值是否大于4
break waiceng; // 跳出外层循环
}
System.out.print("*"); // 打印*
}
System.out.print(" "); // 换行
}
}
}