Java运算符&逻辑控制&输入输出

目录

一、运算符

1.1基本四则运算符(加减乘除模)

1.2增量运算符

1.3关系运算符

1.4自增、自减运算符

1.5逻辑运算符

1.6位运算符

1.7移位运算符

1.8条件运算符(三目运算符)

二、逻辑控制

2.1if语句

2.2switch语句

2.3while/do...while语句

2.4for语句

三、输入&输出

3.1输出

3.2输入


一、运算符

1.1基本四则运算符(加减乘除模)

运算符:+、-、*、/、%

运算规则与数学计算规则相同,需要注意以下几点

  1. 做除法和取模时,右操作数不能为0
  2. %不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的
  3. 两侧操作数类型不一致时,向类型大的提升
  4. int / int 结果还是int类型,而且会向下取整

1.2增量运算符

运算符:+=、-=、*=、/=、%=

计算规则为:

int a = 10;
a += 1;//等价于a = a + 1;

运算过程中会进行隐式类型转换

int a = 1;
double b = 1.0;
b += a;
//运算后b的值为2.0,int类型的a发生了隐式类型转换

1.3关系运算符

运算符:==、!=、<、>、<=、>=

计算结果是布尔类型的true或者false

1.4自增、自减运算符

运算符:++、--

分为前置++(--)、后置++(--)

计算规则为:

int a = 10;
int b = 0;
int c = 0;
b = a++;//此时a的值为10,b的值为10
c = a;//此时a的值为11,c的值为11
b = ++a;//此时a的值为12,b的值为12

不能对常量进行自增/自减运算

1.5逻辑运算符

运算符:&&、||、!

  • 逻辑与:&&左右的两个表达式必须是布尔表达式,当前表达式的结果和两个表达式有关,同真为真
  • 逻辑或:||左右的两个表达式也必须是布尔表达式,当前表达式的结果和两个表达式有关,同假为假
  • 逻辑非:操作数是布尔表达式,!true为false,!false为true\

存在逻辑短路现象:

  • 短路与:前一个表达式为假时,整个表达式为假,并不会执行第二个表达式
  • 短路或:前一个表达式为真时,整个表达式为真 ,不会执行第二个表达式

1.6位运算符

运算符:&、|、~、^

~是一元运算符,其余都是二元运算符,针对的是数据的某一个位(二进制位)

  • 按位与:只要对应位上有0,则当前位是0
  • 按位或:只要对应位上有1,则当前位是1
  • 按位异或:只要对应位不一样,结果就是1,即:n^n=0 , n^0=n
  • 按位取反:把对应位的数字进行取反

需要注意的是:

  • 位运算不会出现短路
  • 操作数为布尔类型时,位运算和逻辑运算原理相同,但是不存在短路问题

1.7移位运算符

运算符:<<、>>、>>>

  • 左移(<<):左移一个比特位,右侧补零,数值上相当于n*2^x(x为左移的位数)
  • 右移(>>):右移一个比特位,左侧补符号位,数值上相当于n/2^x(x为右移的位数)
  • 无符号右移(>>>):右移一个比特位,左侧补零

1.8条件运算符(三目运算符)

运算符:表达式1?表达式2:表达式3

  • 表达式1必须是布尔表达式,如果1为真,返回表达式2的结果,否则返回表达式3的结果

二、逻辑控制

2.1if语句

和C逻辑相同,括号中必须是布尔表达式,注意花括号的位置(左括号和if在同一行)

2.2switch语句

  • 括号中的变量类型不能是long、float、double、boolean
  • 可以是int类型、short类型、String类型或者枚举类型
  • 参数不能是复杂的表达式
  • 多个case的常量值不能重复

2.3while/do...while语句

  • 括号中必须是布尔表达式
  • break和continue与C语言逻辑相同

2.4for语句

和C逻辑相同,括号中必须是布尔表达式

//for each循环
for (int x:array){
    system.out.print(x+"");
}
//缺点:无法获取到对应的下标

三、输入&输出

3.1输出

Java中除了与C语言相似的格式化输出以外,还提供了另外一种输出方式

System.out.println(msg);   //输出一个字符串,并换行
System.out.print(msg);     //输出一个字符串,不换行
System.out.printf(format,msg); //格式化输出(这里format表示该字符串对应的占位符)

3.2输入

这里的输入表示从键盘输入

java中的输入需要用到一个类->Scanner,它所在的包是java.util.Scanner,使用时需要手动导入

具体使用方法为:

Scanner in = new Scanner(System.in);
String str = in.nextLine();

在这个例子中,我们创建了一个in对象,通过它来接受键盘读取到的第一个换行符之前的字符并赋值给str

当然,Scanner类中还有很多有趣的方法,大家如果感兴趣可以自行了解~Java Scanner 类 | 菜鸟教程 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值