这里写目录标题
一、运算符
1.1 算术运算符
整数和浮点数之间最常见的运算就是四则运算,及加减乘除和求余运算。
加(+)、减(-)、乘(*)、除(/)、求余(%)运算符是双目运算符(即连接两个操作元的运算符。)
1.1.1 数值拆分
例如:将一个三位数拆分为百位数,十位数,个位数。
package test;
public class split {
public static void main(String[] args) {
int a=123;
System.out.println("个位数是"+a%10);
System.out.println("十位数是"+a/10%10);
System.out.println("百位数是"+a/100%10);
}
}
运行结果

可推导公式为:
个位数=数值%10;
十位数=数值/10%10;
百位数=数值/100%10;
千位数=数值/1000%10;
……以此类推;
1.1.2 算术混合运算精度
算术运算精度从低到高排序的顺序是:
byte < short < char < int < long < float < double
计算精度规则:
- 如果表达式中有双精度浮点数(double型数据),则按照双精度进行计算。
例如:表达式5.0/2+10的结果是12.5是double型数据 - 如果表达式中最高精度低于int型整数,则按int精度进行计算。
例如:表达式中出现byte、short、char型数据都要先转化成int型数据,才可以进行运算。
1.1.3 字符串中的“+”操作
当“+”操作中出现字符串时,这个“+”是字符串中的连接符,而不是算数运算符。它会将前后的数据进行拼接,并产生一个新的字符串。
例如:
package test;
public class jia {
public static void main(String[] args) {
System.out.println("123"+123);
System.out.println(1+99+"一百");
}
}
运行结果

注:连续“+”是从左到右依次计算(即加号左右两边中有一边有字符串才会被当作字符串中的连接符)
1.2 自增、自减运算符
自增(++)、自减(–)运算符是单目运算符。
a++(表示先用后加);
++a(表示先加后用);
package test;
public class zijiazijian {
public static void main(String[] args) {
int a=0;
System.out.println(a++);
//a++表示先用后加,所以应该输出0,然后a再加1.
System.out.println(++a);
//++a表示先加后用,因为上面a输出后又加了1,所以++a要在此基础上再加1,因此会输出2。
}
}
运行结果

1.3 关系运算符
关系运算符用来比较两个值的关系。与C语言不同的是,java中关系运算符的运算结果是Boolean型,当运算符对应的关系成立时,运算结果为true,否则是false。
package test;
public class gaunxi {
public static void main(String[] args) {
System.out.println(10<9);
System.out.println(5>1);
System.out.println(3!=9);
System.out.println(10<9+5);//算术运算符的级别高于关系运算符
}
}
运行结果

| 运算符 | 优先级 | 用法 | 含义 | 结合方向 |
|---|---|---|---|---|
| > | 6 | op1>op2 | 大于 | 从左到右 |
| < | 6 | op1<op2 | 小于 | 从左到右 |
| >= | 6 | op1>=op2 | 大于或等于 | 从左到右 |
| <= | 6 | op1<=op2 | 小于或等于 | 从左到右 |
| == | 7 | op1==op2 | 等于 | 从左到右 |
| != | 7 | op1!=op2 | 不等于 | 从左到右 |
1.4 逻辑运算符
逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非),其中&&、||为双目运算符,!为单目运算符,逻辑运算符的操作元必须是Boolean型数据。(结果为Boolean型的变量或表达式也可以通过逻辑运算形成逻辑表达式。)
| op1 | op2 | 逻辑与 | 逻辑或 | !op1 |
|---|---|---|---|---|
| true | true | true | true | false |
| true | false | false | true | false |
| false | true | false | true | true |
| false | false | false | false | true |
1.5 赋值运算符
赋值运算符“=”是双目运算符,左边的操作元必须是变量不能是常量或表达式,赋值运算符的优先级是14,结合方向是从右到左。
注:不要将赋值运算符“=”与关系运算符“==”混淆。
| 符号 | 作用 | 说明 |
|---|---|---|
| = | 赋值 | int a=10,将10赋值给a |
| += | 加后赋值 | a+=b,将a+b的值赋给a |
| -= | 减后赋值 | a-=b,将a-b的值赋给a |
| *= | 乘后赋值 | a*=b,将a*b的值赋给a |
| /= | 除后赋值 | a/=b,将a/b的值赋给a |
| %= | 取余后赋值 | a%=b,将a%b的值赋给a |
1.6 三元运算符
关系表达式?表达式1:表达式2;
如果关系表达式为真则执行表达式1,如果为假则执行表达式2;
1.7原码、反码、补码
原码:十进制数据的二进制表现形式,最左边是符号位0为正,1为负。
原码的弊端:利用原码进行计算的时候,如果是正数则没有问题,但如果为负数就会出错,实际的运算方向和正确的运算方向相反。
反码出现的目的:为了解决原码不能计算负数而出现的。
反码的运算规则:符号位不变,其它位数值取反0变1,1变0。
反码的弊端:负数计算过程中,如果结果跨0则会出现偏差。
补码出现的目的:为了解决负数计算时跨0 的问题。
补码的运算规则:正数的补码不变,负数的补码在反码的基础上加1,补码还能多记录一个特殊的值-128,该数据在一个字节下没有原码和反码。
补码的注意事项:计算机中的存储和计算都是以补码的形式进行的。
二、语句
java中的语句可分为六类;
1、方法调用语句
对象可以调用方法,例如:System.out.println(“hello”);
out是System类中的对象,该对象可以调用println()方法。
2、表达式语句
由一个表达式构成一个语句,即表达式尾加上分号,例如赋值语句:x=2;
3、复合语句
用大括号将一些语句括起来构成复合语句。
4、空语句
一个分号也是一个语句,称作空语句。
5、控制语句
控制语句可分为条件分支语句、开关语句和循环语句。
6、package语句和import语句
package语句和import语句与类、对象有关
2.1 条件分支语句
按照语法格式可分为以下三种
2.1.1 if语句
语法格式:
if(表达式)
{
若干语句
}
在if语句中,小括号内的表达式必须是boolean类型。当该值为true时,则执行后面的若干语句;当该值是false时,直接结束if语句。
2.1.2 if-else语句
语法格式:
if(表达式)
{
若干语句
}
else
{
若干语句
}
在if-else语句中,if后面小括号内的表达式必须是boolean类型。当该值为true时,则执行if后面的若干语句,结束当前if-else语句的执行;当该值是false时,则执行else后面的若干语句,结束当前if-else语句的执行。
注:无论if-else的复合语句中有几条语句都不要省略大括号,复合语句中如果只有一条语句虽然不会报错,但还是建议加上大括号。
2.1.3 if-else if-else语句
语法格式:
if(表达式)
{
若干语句
}
else if(表达式)
{
若干语句
}
else
{
若干语句
}
同上面两个语句小括号中必须为Boolean类型,执行该语句时,按照该语句中的表达式的顺序,首先计算第一个表达式中的值,如果结果为true,则执行紧跟着的复合语句,之后结束当前语句;如果结果为false,则继续执行第二个表达式的值,以此类推。
2.2开关语句
switch语句是单条件多分支的开关语句,它的一般格式如下
switch(表达式)
{
case 常量值 1:
若干语句
break;
case 常量值 2:
若干语句
break;
case 常量值 n:
若干语句
break;
default:
若干语句
}
switch语句中,表达式的值可以是byte、short、int和、char型,在switch语句中首先计算表达式的值,如果表达式的值和case后面的常量值相等,就执行该case中的若干语句,直到碰到break语句为止。如果某个case语句中没有使用break语句,一旦表达式的值与该case后面的常量值相等,程序不仅执行该case语句中的若干语句,而且继续执行后继case语句中的若干语句,直到碰到break语句为止。如果表达式的值不和case后面的常量值一样,则执行default后面的若干语句。
2.3 循环语句
2.3.1 for循环语句
语法格式
for(表达式1;表达式2;表达式3)
{
若干语句
}
三个表达式都可以省略。
以下为for循环语句的流程图

2.3.2 while循环语句
语法格式
while(表达式)
{
若干语句
}
以下为while循环语句流程图:

2.3.3 do-while循环语句
语法格式
do{
若干语句
}while(表达式)
do-while循环语句与while循环语句的区别是:do-while的循环体至少被执行一次。
以下为do-while循环语句的流程图

2.3.4 break,continue语句
在循环体中如果某次循环中执行了break语句,那么整个循环都会结束;如果在某次循环中执行了continue语句,那么本次循环结束,将继续执行下一次循环。
例如:
package test;
public class brecon {
public static void main(String[] args) {
int a=0;
int i;
for(i=1;i<10;i++)
{
a++;
break;
}
System.out.println(a);
}
}
运行结果

public static void main(String[] args) {
int a=0;
int b=0;
int i;
for(i=1;i<10;i++)
{
a++;
continue;
}
System.out.println(a);
}
}
运行结果


920

被折叠的 条评论
为什么被折叠?



