JAVA——运算符、语句

一、运算符

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);//算术运算符的级别高于关系运算符
	}

}

运行结果
在这里插入图片描述

运算符优先级用法含义结合方向
>6op1>op2大于从左到右
<6op1<op2小于从左到右
>=6op1>=op2大于或等于从左到右
<=6op1<=op2小于或等于从左到右
==7op1==op2等于从左到右
!=7op1!=op2不等于从左到右

1.4 逻辑运算符

逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非),其中&&、||为双目运算符,!为单目运算符,逻辑运算符的操作元必须是Boolean型数据。(结果为Boolean型的变量或表达式也可以通过逻辑运算形成逻辑表达式。)

op1op2逻辑与逻辑或!op1
truetruetruetruefalse
truefalsefalsetruefalse
falsetruefalsetruetrue
falsefalsefalsefalsetrue

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:
             若干语句
             breakcase 常量值 2:
             若干语句
             breakcase 常量值 n:
             若干语句
             breakdefault:
            若干语句
 }          

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);	
	}

}

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值