运算符,语句(顺序,分支)

int x = 10;
int y = 20;

用不同的方式来交换x和y的值


一、算术运算符
+ - * / %
+ 加法 正数 连接字符串
- 减法 负数
* 乘法
/ 除法 对于整数,除法是整除
% 取余 3.8%2.2
byte short char如果进行算术运算(+,-,*,/) 得到的结果类型为int

++   --
前后之分
前++ --  先自增减,然后取自增减以后的值再进行运算
后++ --  先取值进行运算,运算完之后再自增减

二、关系运算符
< <= > >= == !=
数学关系 结果是true 或者 false

三、逻辑运算符
&& || !
结果是true 和 false
逻辑运算符连接逻辑表达式
短路特性:当&&连接的条件前面为false时不再计算后面的表达式
当||连接的条件前面为true时不再计算后面的表达式

四、位运算符
& | ^ ~ >>(有符号右移) >>>(无符号右移) <<
>> 循环带符号右移 右边移出的二进制位舍弃 最高位都补符号位
每向右移一位,相当于除以2 (-1除外)
向右移n位,相当于除以2的n次方

>>> 循环不带符号右移  右边移出的二进制位舍弃  最高位补0
	对于负数而言,得到的结果和>>不一样

<<  循环左移      左边移出的二进制位舍弃  右边补0
每向左移一位,相当于乘以2
向左移n位,相当于乘以2的n次方
int所表示的范围是  [1<<31,-1>>>1]

int x = 32352234;
int y = 8934534;
(x&y) + ((x^y)>>1)  算平均值
x&y  得到二进制位共同拥有1的
x^y  得到不同的二进制里的1  >> 1  除以2

如何判断一个数是否是偶数
num%2==0
偶数  最末尾一位是0  奇数最末尾一位是1
(num&1) == 1 是奇数
(num&1) != 1 是偶数

int x = 0xb7;
int y = 0x73;

x&y  = 51
x|y  = 247
x^y  = 196
~x   = -184

如何从控制台输入整数:

1.在类外面导入包
import java.util.Scanner;
2.创建Scanner对象
Scanner scan = new Scanner(System.in);
3.读取一个整数
int num = scan.nextInt();
4.关闭Scanner流
scan.close();

五、三目运算符
?:
布尔表达式?表达式1:表达式2;
如果布尔表达式的结果为true则取表达式1的值,否则取表达式2的值

x&1!=0?"偶数":"奇数"
x%2==0?"偶数":"奇数"
输入一整数,输出该整数是偶数还是奇数
练习:
	1.输入一个整数,输出该整数是正数 还是负数

	2.输出该整数是大于0  还是等于0  还是小于0
			正数  0   负数

六、赋值运算符
= 千万注意 不要和 == 混淆了
= 赋值
== 比较运算符

混合赋值语句:
	x o= y;   ==>   x = xOy;   O代表双目运算符(有两个操作数的运算符)

int a,b,c = 1;
a = b = c;

七、其它
, () [] .
() 用于控制优先级
[] 数组下标访问运算符
. 成员访问运算符

通常运算符的优先级:
算术 > 关系 > 逻辑
算术 > 位运算(除~外)
int x = 1,y = 2,z = 3;
boolean b = x+y>=3 && z-y>=x;
如果在写代码过程中不能准备地判断优先级时,加()


写代码

java的代码从下面函数开始执行(这句话是错误的)
从public static void main(String[] args){

}

语句:
1.顺序执行语句
代码一行一行执行 从上往下逐一执行
2.分支选择语句
遇到不同的情况 代码需要执行不同的分支
(1) if
if(条件表达式){
//执行代码
}

		if(条件表达工){
			//如果条件为true则执行此代码
		}else{//否则
			//条件不成立时  条件为false时执行此代码
		}
		
		用分支选择语句 输入一个整数 是偶数 还是奇数
		
		输入一个年份,判断是闰年 还是 平年
			闰年: 能被4整除 但不能被 100整除
					或者  能被400整除的年份  闰年
		
		boolean leap = year%4==0 && year%100!=0 || year%400==0;//true
					   year%400==0 || year%4==0 && year%100!=0;
					   
		
		输入一个百分制的成绩 输出等级
		[100,90]   优秀
		[80,90)    良好
		[70,80)    中等
		[60,70)    及格
		[0,60)     不及格
		
		if(条件1){
			//条件1为true执行此代码
		}else if(条件2){//否则   条件1为false
			//条件2为true执行此代码
		}else if(条件3){
		
		}...
		
		else{//剩下的情况
		
		}
		
	作业:
		1. 输入一个月份
			输出这个月份的季节
		2. 输入年、月、日三个整数
			int year = scan.nextInt();
			int mon = scan.nextInt();
			int day = scan.nextInt();
			判断该日期是否存在
			月[1-12]
			1 3 5 7 8 10 12   [1,31]
			4 6 9 11   [1,30]
			2   [1,28] [1,29]
			
		3. 在第2题的基础上,输出一个有效日期的下一天
		4. 计算一个有效日期是当年的第几天
		
	(2)
		switch
	
	
3.条件循环语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值