JAVA 运算符与程序控制流程

JAVA 运算符与程序控制流程

运算符

运算符包含算术运算符、关系运算符、逻辑运算符、自加和自减运算符、赋值运算符、三元(目)运算符、位运算符

1.算术运算符

Java中算术运算符包含:+、 -、 *、 /、 %,分别为加法、减法、乘法、除法、求模(取余)完全符合数学规则。

2.关系(比较)运算符

关系(比较)运算符包含>、<、>=、<=、==、!=,分别为小于、大于、小于等于、大于等于、等于、不等于运算符,关系运算符的最终结果是一个boolean值

3.逻辑运算符

逻辑运算符包含&&、||、!,分别为与、或、非,其中逻辑与运算符当且仅当两个操作数都为真,条件为真;逻辑或操作符,如果任何两个操作数任何一个为真,条件为真;逻辑非运算符,用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

4.自加和自减运算符

自加和自减运算符包含++、–,分别位自加和自减运算符,皆为一元运算符,而自加和自减运算符又可以用于数值变量之前或者之后。两处使用差别:

”++“和”–“用于数值变量之前,在赋值操作中,先对被”++“或”–“操作变量值先加1或者先减1,然后在进行其他的操作;
"++"和”–“用于数值变量之后,在赋值操作中,先用被”++“或”–“的操作变量值进行其他的操作,然后在对其值加1或者减1。

public class Test {
	public static void main(String[] args) {
		int a=0;
		System.out.println(a++);
		System.out.println(++a);
	}
}

结果为
0
2
第一次控制台输出语句先输出 a 再做 a 自加,故先输出0,这行代码执行完后 a 值为1。
第二次控制台输出语句先做 a 自加再输出 a ,故先做 a = a + 1; 后 a 值为2,然后输出 a。
自减同理。
注意:自加算符,不管是前加加还是后加加,本质上对应运算的变量,肯定要加1;自减也类似,前加加和后加加最大的不同之处是就是,前加加的优先级别特别的高,后加加的优先级别特别的低。

5.赋值运算符
	=		// 将等号右侧的值赋予左侧
	+=		// int a = 10  a += 20; <==>  a = a + 10
	-=	    // int a = 10  a -= 2; <==>  a = a - 2
	*=      //int a = 10  a *= 2; <==>  a = a * 2
	/=		//int a = 10  a /= 2; <==>  a = a / 2
	%=	    //int a = 10  a %= 2; <==>  a = a % 2
6.三目运算符

变量 = 表达式是否成立?第一个值:第二值

public class Test {
	public static void main(String[] args) {
		int a = 2;
		a = (a>0)?5:10;
		System.out.println(a);
		a = (a<0)?5:10;
		System.out.println(a);
	}
}

结果输出
5
10
第一个三目运算 a 值为2, a>0 为真,故把第一个值即5赋值给 a,输出5.
第二个三目运算 a 值为5, a<0为假,故把第二个值即10赋值给 a,输出10

7.位运算

java支持的位运算符:
&:按位与。
|:按位或。
~:按位非。
^:按位异或。

<<:左位移运算符。 >>:右位移运算符。<<<:无符号右移运算符。
注意:当移位的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型!!

位运算符中,除 ~ 以外,其余均为二元运算符。操作数只能为整型和字符型数据。
计算机中数字以补码储存,因为原码和反码计算不准确,而补码是准确的。 Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。
原码:是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。
反码:正数的反码还是等于原码,负数的反码就是他的原码除符号位外,按位取反。
补码:正数的补码等于他的原码,负数的补码等于反码+1。

程序控制流程

1.顺序

如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。

2.选择结构

单分支

if (条件) {
	// 如果条件为真,则执行{}内部的代码,否则跳过不执行,顺序执行单分支后的语句
}

双分支

if (condition) {
	// 如果条件为真,则执行if内部的代码
} else {
    // 如果条件为假时,则执行else内部的代码
}

多分支

if (条件1) {
	// 如果条件1为真,则执行内部的代码
} else if (条件2) {
	// 如果条件2为真,则执行内部的代码
} else if (条件3) {
	// 如果条件3为真,则执行内部的代码
} ...
else {
	多分支中else可加可不加	,加了else时,前面的条件全都为假时执行else内部的代码
}
3.switch语句

switch语句是一种比较常见的多分支选择结构的写法

switch(变量) {
			case 值1: 
				// 当变量对应的值是值1时,执行这儿的代码
				break;

			case 值2:
				// 当变量对应的值是值2时,执行这儿的代码
				break;
			case 值3:
				// 当变量对应的值是值3时,执行这儿的代码
				break;
			...
			default:
				// 表示剩余的条件
				break;
}

switch语句的注意点:
1、一般而言,没有特殊情况,case必须加break;
2、default根据情况而言,看需不需要;
3、(面试重点)在早期jdk1.5之前,switch的变量类型,只支持char、short、byte、int四种
在jdk5.0时,增加了枚举类型(enum类型)
在jdk7.0时,增加了字符串类型!!!

到目前为止,不支持long和浮点数据!!!

4.循环

作用:周而复始的执行代码
目的:代码的重复

for循环:

for (定义变量; 条件判断;索引变化) {//第一个分号前是最开始执行的代码,整个循环中只执行一次一般用来定义变量
	 // 循环体
}

注意:for循环是编程语言中最重要的循环方式之一,由四部分组成,第一部分,也就是定义变量,只执行一次
第二步条件判断执行完成后,如果结果为true,则立刻循环循环体的代码,之后再执行第三部,也就是索引变化。

break和continue关键字:

break的作用:
	1、在switch语句中终止switch语句
	2、在循环中终止离它最近的那层循环

continue关键字的作用:
	终止本次循环,进入下次循环
public class Test {
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			if (i%2==0) {
				continue;
			}
			System.out.println(i);
		}
	}
}

结果输出
1
3
5
7
9
循环中遇到 i 能被2整除就跳过本次循环,否则输出 i 。

while循环:

while(条件) {
	 // 循环体
}

do while循环:

do {
		// 循环体    先执行一遍循环体再判断条件
} while (条件);

特点:即便条件不符合,也会执行一次!!!
do while循环在编程中,常见的使用场景就是人机交互

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值