Java入门——(3)基本运算符和控制语句


前言

Java入门自己记录学习,每天都要加油。
今天学习Java基本运算符和控制语句。


一、运算符和表达式

程序的基本功能是处理数据,任何编程语言都有自己的运算符,根据不同的要求,设置了不同的运算符。

下面按优先顺序列出了各种运算符:

优先级运算符
一元运算符++ –
算术运算符* / % + - ()
关系运算符< > <= >= == !=
逻辑运算符与、或、非
三目运算符布尔表达式?表达式1:表达式2
赋值运算符= *= /= %= += -=

1.一元运算符

利用一个操作数进行运算,所以是一元的运算符。

运算符含义
++自身加一
自身减一

两种用法:
++x:++在前,所以先加后用。
x++:++在后,所以先用后加。
减法用法相同。

int a = 10;
int b = 10;
int sum1 = a + ++b;
System.out.println(b);
int sum2 = a + b++;
System.out.println(b);
System.out.println(sum1);
System.out.println(sum2);

输出结果为:

11
12
21
21

sum1 = a + ++b;
相当于b = b + 1;sum1 = a + b;
此时b = 11,sum1 = 10 + 11;

sum2 = a + b++;
相当于sum2 = a + b; b = b + 1;
此时 sum2 = 10 + 11;b = 12;

2.算术运算

算术运算符:+、-、*、/等基本运算

运算符含义
+加法
-减法
*乘法
/除法
%取余
int a = 10;
int b = 4;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);

输出结果:

14
6
40
2
2

3.关系运算符

运算符含义
<小于
>大于
<=小于等于
>=大于等于
==等于
!=不等于

这些运算符的规则和数学上的规则是一样的。
关系运算符用于比较两个数据之间的大小关系,返回类型为boolean型。
例如:

int num1 = 3;
int num2 = 4;
int num3 = 5;
boolean result1 = num1 > num2;
boolean result2 = num1 == num3;
boolean result3 = num1 <= num2;
System.out.println("num1 > num2 = " + result1);
System.out.println("num1 == num3 = "+ result2);
System.out.println("num1 <= num2 = " + result3);

输出为:

num1 > num2 = false
num1 == num3 = false
num1 <= num2 = true

需要注意的是:关系运算符中的==!=既可以操作基本数据类型,也可以操作引用数据类型。
操作引用数据类型时,比较的是引用的内存地址。所以在比较非基本数据类型时,应该使用equals方法。


4.逻辑运算

运算符(定义为“非”)、&& (定义为“与”)、||(定义为“或”)执行布尔逻辑表达。

逻辑非关系表值表

AB
truefalse
falsetrue
boolean b1 = true;
boolean b2 = false;
System.out.println(!b1);
System.out.println(!b2);

输出结果:

false
true

逻辑与关系值表

ABA&&B
truetruetrue
truefalsefalse
falsetruefalse
boolean b1 = true;
boolean b2 = 1 < 3;
boolean b3 = 1 > 3;
boolean b4 = false;
System.out.println(b1 && b2);
System.out.println(b1 && b3);
System.out.println(b3 && b4);

输出结果:

true
false
false

逻辑或关系值表

ABA||B
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse
boolean b1 = true;
boolean b2 = 1 < 3;
boolean b3 = 1 > 3;
boolean b4 = false;
System.out.println(b1 || b2);
System.out.println(b1 || b3);
System.out.println(b3 || b4);

输出结果:

true
true
false

在运用逻辑循环的时候要注意“短路现象”。
看下面这个例子:

int a = 1;
boolean b1 = true || a++ < 10;
boolean b2 = false && a++ < 10;
System.out.println(b1);
System.out.println(a);
System.out.println(b2);
System.out.println(a);

输出结果为:

true
1
false
1

这是因为||只要第一个判断条件是true,那么就直接可以得到这个式子是成立的,故而不会执行第二个条件了。
&&同理,只要第一个是false,那么这个条件就一定不会成立,所以直接输出。


5.三目运算

目运算符(?:)相当于条件判断,表达式x?y:z用于判断表达式x是否为真,如果为真,表达式的值为y;否则表达式的值为z。

int i = (5 > 3) ? 6 : 7;
System.out.println("i = " + i);

输出结果为:

i = 6

而上面的式子等同于:

int i = 0;
        if (5 > 3) {
            i = 6;
        } else {
            i = 7;
        }
        System.out.println("i = " + i);

6.赋值运算符

基本的赋值运算符是“=”,就是将数值赋给变量。

int a = 1;
a = 2;
System.out.println(a);

输出结果是:

2

二、位运算符(了解)

1.位运算符

运算符分类运算符
一元运算符~
移位运算符<< >> >>>
位运算~ & | ^
赋值运算符<<= >>= >>>= &= |= ^=

非位关系值表

A~A
10
01

与位关系值表

ABA&B
100
010
111
000

或位关系值表

ABA|B
101
011
111
000

异或位关系值表

ABA^B
101
011
110
000
int a = 15;
int b = 2;

System.out.println(a + "&" + b + "=" + (a & b));
System.out.println(a + "|" + b + "=" + (a | b));
System.out.println(a + "^" + b + "=" + (a ^ b));
System.out.println("~" + b + "=" + (~b));

运算结果:

15&2=2
15|2=15
15^2=13
~2=-3

2.移位运算符

运算符含义
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>>"有符号"右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
>>>"无符号"右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.

三、控制语句

1.分支控制语句

if语句
三种基本格式:

if(布尔表达式){
	语法块;
}

if(布尔表达式){
	符合条件执行语法块;
}else{
	否则执行语句块;
}

if(布尔表达式){
	符合条件执行语法块;
}else if(){
	符合条件执行语法块;
}else if(){
	符合条件执行语法块;
}else if(){
	符合条件执行语法块;
}else{
	都不符合执行语法块;
}

在这里插入图片描述

例子1:

int a = 5;
if(a > 0){
	System.out.println("a是正数");
}

输出结果:

a是正数

那么如果a不是整数,则不会有输出。

int a = 5;
if(a > 0){
	System.out.println("a是正数");
}else {
	System.out.println("a是负数");
}

输出结果:

a是正数

假设a是0呢,我们应该项下边这样写:

int a = 0;
if(a > 0){
	System.out.println("a是正数");
}else if(a < 0){
	System.out.println("a是负数");
}else{
	System.out.printfln("a既不是正数也不是负数");
}

输出结果:

a是正数

switch语句

switch  ( 表达式 ){
    case  常量1: 
        语句;
        break;
    case  常量2: 
        语句;
        break;
    default: 
        语句;
        break;
}

例子:

int dayOfWeek = 3; // 假设今天是星期三

switch (dayOfWeek) {
    case 1:
        System.out.println("今天是星期一");
        break;
    case 2:
        System.out.println("今天是星期二");
        break;
    case 3:
        System.out.println("今天是星期三");
        break;
    case 4:
        System.out.println("今天是星期四");
        break;
    case 5:
        System.out.println("今天是星期五");

输出:

今天是星期三

switch语句中表达式的形式可以是byte、short、int、char、字符串。
case分支是要执行的语句。

2.循环控制语句

for 循环
for循环的句法是:

for(循环变量初始化;循环条件;循环变量){
	循环操作语句;
}

在这里插入图片描述

示例:

for (int i = 0; i < 10; i++) {
    System.out.println("这是第" + i + "次循环。");
}

一共会循环十次,从0~9:

这是第0次循环。
这是第1次循环。
这是第2次循环。
这是第3次循环。
这是第4次循环。
这是第5次循环。
这是第6次循环。
这是第7次循环。
这是第8次循环。
这是第9次循环。

它的执行顺序是:
初始化int i = 0;
i < 10;
然后进入循环执行输出语句
然后i++;

循环往复……
……

直到i = 10;不符合循环条件,不会再进行循环。
执行完毕。
while 循环
while循环的句法:

while(布尔表达式){
	语句块;
}

在这里插入图片描述

案例:

int i = 0;
while (i < 10) {
    System.out.println("这是第" + i + "次循环。");
    i++;
}

在这里插入图片描述

结果:

这是第0次循环。
这是第1次循环。
这是第2次循环。
这是第3次循环。
这是第4次循环。
这是第5次循环。
这是第6次循环。
这是第7次循环。
这是第8次循环。
这是第9次循环。

循环结果和for循环的结果是一样的。只不过方式不同。
while循环,通过用布尔表达式判断条件,通过的话则执行循环体,不通过则结束循环。
do-while 循环
do-while循环句法:

do {
	语句块;
}while(布尔表达式);

示例:

int i = 0;
do {
	System.out.println("这是第" + i + "次循环。");
	i++;
} while (i < 10);
这是第0次循环。
这是第1次循环。
这是第2次循环。
这是第3次循环。
这是第4次循环。
这是第5次循环。
这是第6次循环。
这是第7次循环。
这是第8次循环。
这是第9次循环。

do-while循环和while循环类似。

特殊循环流程控制
break;
continue;
使用案例:

for (int i = 0; i < 10; i++) {
           if (i == 5) {
              break;
           }
           System.out.println("i = " + i);
       }

输出结果:

i = 0
i = 1
i = 2
i = 3
i = 4

break跳出循环,不在往后继续循环了。

for (int i = 0; i < 10; i++) {
           if (i == 5) {
              continue;
           }
           System.out.println("i = " + i);
       }

输出结果:

i = 0
i = 1
i = 2
i = 3
i = 4
i = 6
i = 7
i = 8
i = 9

continue表达的意思也是跳出循环,只不过是终止本次循环,继续进行下次循环,所以在输出结果中跳过了i = 5的输出,但不影响继续循环。


总结

知识点描述
运算符一元运算符:++ –
算术运算符:+ - * / %
比较运算符:> < >= <= == !=
逻辑运算符:&& || !
三元运算符: ?:
赋值运算符:= += -= *= /= %=
结构语句分支:if switch
循环:for while do-while (break/continue)

基本运算符的使用和控制语句等的使用。
加油😀

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiulaizhiwo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值