学习Java的第三天: 运算符,分支结构和循环结构
程序员文章站
2022-06-26 08:02:24
...
运算符,分支结构和循环结构
1. 运算符
1.1 自增自减运算符
【注意】
自增自减运算符有且只能操作变量。
++:操作的变量自增 1
变量前: 先执行自增语句,再来参与当前代码行运行
变量后: 先执行当前代码行运行,再执行自增语句
--:操作的变量自减 1
变量前: 先执行自减语句,再来参与当前代码行运行
变量后: 先执行当前代码行运行,再执行自减语句
【开发建议】
1. 非要使用自增长运算符,建议单独成行。
2. 使用 += 1 和 -= 1 替换自增自减运算符
1.1.1自增自减运算符面试题
1.
int num = 5;
int ret = num++ * num;
num = ?; 6
ret = ?; 30
2.
int num = 10;
++(num++);
num = ?; 编译报错
(num++)首先执行,但是小括号里面的内容对外是一个整体,也就是一个常量!!!
自增自减运算符【不能操作常量】
1.2 逻辑运算符
&&
保险柜的门,顾客一把钥匙,管理员一把钥匙,缺一不可
同真为真,有假【即】假
||
自己家门,任何一个人带有钥匙,都可以开门
有真【即】真,同假为假
! 非
取反
1.2.1逻辑运算符的断路原则问题
class Demo4 {
public static void main(String[] args) {
int num = 10;
boolean ret = 4 < 3 && num++ > 10;
/*
逻辑与断路原则问题
逻辑与同真为真,有假【即】假。
逻辑与表达式中如果出现了任何一个false条件,
从false条件开始,之后的表达式不再运行,因为
整个逻辑与表达式的结果已经确定为false。为了
简化计算机的运算逻辑复杂度!!!
*/
System.out.println("ret : " + ret);
System.out.println("num : " + num);
int num1 = 20;
boolean ret1 = 10 > 5 || ++num1 < 30;
/*
逻辑或断路原则问题
逻辑或有真【即】真,同假为假
逻辑或表达式中如果出现了一个true条件,之后的
表达式就不再运行,因为整个逻辑或的结果已经确定
为true,这样做是为了简化计算机运算逻辑复杂度
*/
System.out.println("ret1 : " + ret1);
System.out.println("num1 : " + num1);
}
}
2. 分支结构
2.1 开发中常见的结构
顺序结构
代码从上之下,从左至右执行!!!
分支结构
条件判断,条件满足执行对应代码
循环结构
在程序中重复执行功能代码
2.2 if
2.2.1 if分支
if (/* 条件判断 true or false */) {
// 条件结果为true执行大括号以内的语句
}
/*
执行流程:
代码运行到if分支结构,首先判断if之后的条件是否为true,如果为true,执行大括号里面的语句,如果为false直接执行大括号之外的语句,
*/
class Demo5 {
public static void main(String[] args) {
int money = 10;
if (money > 2000000) {
System.out.println("郑州一套房!!!");
}
System.out.println("你怕不是在做梦!!!");
}
}
2.2.2 if - else分支
if (/* 条件判断 true or false */) {
// true语句体
} else {
// false语句体
}
/*
执行流程:
代码运行到if-else结构时,首先判断if之后的条件是否为true,如果为true,执行if之后大括号内容,true语句体,如果为false,执行else大括号内容,false语句体
*/
class Demo6 {
public static void main(String[] args) {
int money = 20;
if (money > 50) {
System.out.println("老板,要一份大盘鸡,微辣");
} else {
System.out.println("吃砖头去吧!!!");
}
}
}
2.2.3 if - else if结构
if (/* 条件匹配1 */) {
// 处理方式1
} else if (/* 条件匹配2 */) {
// 处理方式2
} else if (/* 条件匹配3 */) {
// 处理方式3
} else {
// 没有任何条件满足下的处理方式
}
/*
执行流程:
代码运行到if-else if结构时,匹配if之后的条件,找到匹配项,执行对应的处理方式,如果没有任何一个条件匹配,执行else里面的语句。
成绩等级划分:
90 ~ 100 天秀
80 ~ 90 地秀
70 ~ 80 还中
60 ~ 70 点正
60 以下
准备挨打!!!
*/
class Demo7 {
public static void main(String[] args) {
int score = 59;
if (score >= 90) {
System.out.println("天秀");
} else if (score >= 80) {
System.out.println("地秀");
} else if (score >= 70) {
System.out.println("还中");
} else if (score >= 60) {
System.out.println("点正");
} else {
System.out.println("准备挨打!!!");
}
}
}
【补充知识点 从键盘上获取用户输入的数据】
1. 【导包】
在class之前复制粘贴
import java.util.Scanner;
2. 创建一个Scanner的变量
Scanner sc = new Scanner(System.in);
3. 使用Scanner的方法从键盘上获取数据
获取int类型数据
int类型变量 = sc.nextInt();
获取float类型数据
float类型变量 = sc.nextFloat();
获取char类型数据
char类型变量 = sc.nextLine().charAt(0);
【补充知识点 用户体验问题】
在代码运行过程中需要给予用户更好的体验!!!是非常友好的体验。
【补充知识点 用户输入数据合法性判断】
在实际代码运行过程中,用户提供的数据很有可能是非法情况。这是需要在满足用户基本需求的情况下,同时满足代码的正常运行!!!
增强代码的健壮性,稳定性
2.3 switch case
switch (变量) {
case 常量1:
处理方式1;
break;
case 常量2:
处理方式2;
break;
case 常量3:
处理方式3;
break;
default:
没有匹配任何case之后的处理方式
break;
}
/*
执行流程:
代码运行到switch case结构,使用switch之后小括号里面的变量,去匹配case之后的常量,如果有匹配项,执行对应的处理方式,如果没有匹配项执行default里面的处理方式。
特征:
1. 在switch - case 结构中,能够使用的代码有且只能是case 到 break 或者 大括号之间,还有就是default之后的的语句
2. break可以省略,对应case执行是会继续执行到下一个break或者switch大括号停止
3. 在switch case结构中,不能出现相同case选项,case之后的选择是唯一的。
4. 在switch case结构中,可以出现并列选项
case 3:
case 4:
case 5:
5. default可以省略,需要根据实际的开发需求而定。
*/
3. 循环结构
3.1 为什么是用循环结构
代码中一定会出现多次使用的代码块,而代码中重复使用 如果仅仅是依赖于CV大法,那么会导致以下问题出现
1. 代码冗余
2. 代码阅读性极差
3. 代码维护性极差【亲,请给自己留个活路,不要作死!!】
3.2 while循环结构
while (/* 循环条件 true or false */) {
// 循环体
// (循环条件变更)
}
下一篇: 万彩动画大师在哪里添加或删除镜头?