java跨行_小白跨行学习Java的辛酸路程

运算符和分支结构

1.运算符

1.1算术运算符

小学知识点:

加+,减-,乘×,除÷,小括号()

开发中使用的算术运算符:

加+,减-,乘*,除/,取余%,小括号(),赋值号 =

注意事项:

1.先乘除,后加减

2.从左至右运行

3.除数不能为0(除数就是÷号后面的数,8÷2 8是被除数,2是除数)

4.先运算小括号里面的内容

【批注】

1.Java中所有的运算符优先级有18-19个等级,优先级最高的是小括号,开发中

如果发现需要整理优先级的问题,简单粗暴的加括号,即加()

2.小括号里面的内容对于小括号外面而言是一个整体,是一个【常量】

= 赋值号

赋值号的功能是将赋值号右侧的数据赋值给左侧的【变量】

char ch = 'A'; true(这个是正确的)

10 = 20; false(这个是错误的)

使用总结:

1.变量有且只能在赋值之后才可以修改内容,没有赋值的不能修改

2取余操作注意细节

3.【批注】

取余操作针对于整数,小数没有取余操作

/*算术运算符演示*/

class Demo1 {

public static void main(String[] args){

//定义两个int类型的变量

int num1 = 10;

int num2 = 20;

//numi+num2结果赋值给num1

num1 = num1+num2;//nun1=30;num2=20;

//变量在代码运行过程中是会发生改变的

num1 = num1*num2;//num1=600,num2=20

num1 = num1-num2;//num1=580,num2=20

num1 = num1/num2;//num1=29,num2=20

//小学手写方式

//20÷29=0......9

//5÷2=2......1

//9÷4=2.....1

num1 = num2%num1;//nuni=20;num2=20

/*num2的值从开始到最后都没有发生改变

num2从开始没有被赋值过*/

System.out.println(num1);

System.out.println(num2);

}

}

1.2偷懒专用算术运算符

非常实用

+=,-=,/=,*=,%=;

即演示:num1=numi+num2;也可以写作num1 += num2;两种方式相等。

/*偷懒专业算术运算符*/

class Demo2 {

public static void main(String[] args) {

//定义两个变量

int num1 = 10;

int num2 = 20;

//num1=num1+num2;

num1 += num2;

//num1=num1×num2

num1 *= num2;

System.out.println(num1);

System.out.println(num2);

}

}

1.3关系运算符

小学关系运算符:

,≥,≤,≠,=;

代码开发中关系运算符:

> 大于

< 小于

>= 大于等于

<= 小于等于

!= 不等于

== 等于

注意事项:

1.关系运算符的结果是一个boolean数据类型,结果只能为true or false

2.关系运算符一般用于条件判断,数据过滤...

/*关系运算符*/

class Demo3 {

public static void main(String[] args) {

//定义一个boolean类型变量

boolean ret = true;

//5>10结果赋值给ret 这个boolean类型变量

ret = 5>10;

System.out.println(ret);//false

ret = 5<10;

System.out.println(ret);//true

ret = 5>=5;

System.out.println(ret);//true

ret = 5<=2;

System.out.println(ret);//false

ret = 5!=5;

System.out.println(ret);//false

ret = 5==4;

System.out.println(ret);//false

}

}

1.4自增自减运算符【难点,考点】

【明确】

自增自减运算符【有且只能操作变量】,不可以操作常量

【建议】

建议开发中尽量减少或者标准化使用自增自减运算符。

语法

++ 自增运算符 操作变量值自增1 等价于 +=1

-- 自减运算符 操作变量值自减1 等价于 -=1

【难点】

前后关系

/*自增运算符前后关系演练*/

class Demo4 {

public static void main(String[] args) {

int num1 = 10;

//双引号内容所见得

/*

自增运算符在操作数之后,首先操作数原始数据参与该行代码运行

当前代码运行结束之后,再进行自增操作。

先执行当前行代码,再执行自增操作

*/

System.out.println("num1== : " + num1++);//运行完以后显示num1++ : 10

System.out.println("num1 : " + num1);//运行完显示num :11

/*

自增运算符在操作数之前,首先执行自增操作,num1 += 1;

num1 ==> 12 然后在进行数据展示

先执行自增,在参与当前行代码执行

*/

System.out.println("++num1 : " + ++num1);//运行完显示++num :12

System.out.println("num1 : " + num1);//运行完显示num :12

}

}

【自增自减运算符考点】

常见面试题1

【题目为】

int num = 5;

int ret = num++ * ++num;

ret = ?

num = ?

/* 自增自减面试题1 */

class Demo6 {

public static void main(String[] args) {

int num = 5;

int ret = num++ * ++num;

System.out.println("ret : " + ret);//运行后显示ret : 35 System.out.println("num : " + num);//运行后显示num : 7 }

}

【以下为此体解析】

/*请问num值经历了几次自增操作?两次,num确定最后结果为7ret的结果从何而来?num++++在后,提供的数据5, num++在运行表达式中提供的数据为5这里运算操作是一个乘以操作,num++需要执行完毕 num ==> 6*++num:++在前,提供的数据6 + 1 ==> 7最终表达式的结果为5 * 7 = 35 ==> ret;int ret = num++ * ++num;拆解num == 5;num += 1 ==> 6*++num ==> 7*/

常见面试题2

【题目为】

int num = 5;

++(num++);

num = ?;

/* 常见面试题2*/

class Demo7 {

public static void main(String[] args) {

int num = 5;

++num++;

/*Demo7.java:5: 错误: 意外的类型++(num++);^需要: 变量找到: 值1 个错误*/

System.out.println(num);

}

}

【以下为此体解析】

/*Demo7.java:5: 错误: 意外的类型++(num++);^需要: 变量找到: 值1 个错误解释:因为(num++)是存在于小括号以内,按照计算优先级处理,首先计算小括号里面的内容,但是因为小括号是一个整体,对外的数据时num++的结果,这是一个常量!!!自增自减运算符,只能操作变量,不可以操作常量。语法报错!!同理++num++ 也是错误的++num结果是一个常量(num)这个是常量还是变量呢这个小括号是无用的!!!(num)++这是对的num = 5拿++num*++num = 42unm = 5num++ + --num + ++num 此运算完显示16*/

1.5逻辑运算符

与 符号是(&&)

银行的金库,两个人两把钥匙,需要同时在场,缺一不可。

&&

【重点】同真为真,有假【即】假

或 符号是(||)

自己家门,我和我女朋友出去逛街,只要有一个人带有钥匙就可以回家,满足一个条件即

可。

||

【重点】有真【即】真,同假为假

非 符号是(!)

强牛

犟,杠精!!

取反

!

逻辑运算符运算的结果都是boolean类型数据。

通常用于条件判断,数据过滤...

骚磊洗脚房

想要成为VVIP充值超过10W并且消费超过10次

骚磊电脑专修

想要成为VVIP修过一次电脑或者喊一声磊哥

/* 逻辑与短路原则 */

class Demo9 {

public static void main(String[] args) {

int num = 5;

boolean ret = false;

/*

只要有错后面的就不看了吗 为了效率是吗

逻辑与的情况下:

同真为真,有假【即】假

当出现一个条件为false之后,整个逻辑与表达式的结果为

false,从false之后的其他所有条件都不会执行。

计算机的节约性能问题!!!

*/

ret = num > 10 && ++num > 1;

System.out.println("ret : " + ret);

System.out.println("num : " + num);

}

}

/* 逻辑或短路原则问题 */

class Demo10 {

public static void main(String[] args) {

int num = 10;

boolean ret = false;

/*

逻辑或短路原则

有【真】即真,同假为假

只要发现一个条件为真,整个表达式结果已经确定为真。

从true条件开始其他条件不需要执行

*/

ret = num > 5 || ++num > 20;

System.out.println("ret : " + ret); // true

System.out.println("num : " + num); // 10

}

}

1.6运算符练习题

/*条件:写出判断是否是英文大写字母的条件在使用字符常量时,请使用字符本身*/

char ch; // 声明一个变量ch >= 'A' && ch <= 'Z';

// 'A' <= ch <= 'Z'; // 计算机不承认这样的写法!!! ERROR*

条件:

写出判断是否是英文小写写字母的条件

在使用字符常量时,请使用字符本身

*/

char ch; // 申明一个变量ch >= 'a' && ch <= 'z';

/*条件:写出判断是否是英文字母的条件*/

char ch;

(ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z');

ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z';

/*以上两种写法结果一致按照Java规范的运算符优先级问题,&& 高于 ||使用小括号是将条件作出一个整体!!!便于阅读和整理思路*/

/*闰年问题:1. 能被4整除,但是不能被100整除2. 能被400整除*/

int year;

// 能被4整除year % 4 == 0;

// 不能被100整除year % 100 != 0;

// 能被400整除year % 400 == 0;

// 以上三个条件如何组合?(year % 4 == 0 && year % 100 != 0) || year % 400 == 0;

/*加上小括号是一个整体,增强阅读性!!!*/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值