文章目录
一、流程控制语句
程序的流程一般分为:顺序结构、分支结构、循环结构
- 顺序结构:就是不加任何控制,从上往下依次执行
- 分支结构:根据条件判断是true还是false,有选择性的执行哪些代码。
- 是控制某一段代码重复执行。在Java语言中提供了三种格式,for、while、do-while
二、if分支结构
2.1 if分支结构介绍
用if语句做判断满足条件(true)即执行语句体。
if分支主要有三种格式:
2.2 if格式1
只执行满足条件的情况
if 第一种形式执行流程如下:
如果条件表达式 为true,就执行下面的语句体
如果条件表达式 为false,就不执行
double t = 36.9;
if(t > 37.0){
System.out.println("体温异常");
}
2.3 if格式2
执行满足条件和不满足条件的两种情况,因为判断的变量只有两种状态
if 第二种形式执行流程如下:
如果 条件表达式 为true,就执行下面的语句体1
如果 条件表达式 为false,就执行else下面的语句体2
double t = 36.5;
if(money >= 37){
System.out.println("体温异常");
}else {
System.out.println("体温正常");
}
2.4 if格式3
当判断的变量有多种状态时,用多层if嵌套
if 第三种形式执行流程如下:
如果 条件表达式1 为true,就执行下面的代码1;
如果 条件表达式1 为false,就继续判断条件表达式2;
如果 条件表达式2 为true,就执行下面的语句体;
如果 条件表达式2 为false,就继续判断条件语句体3;
如果 条件表达式3 为true,就执行下面的语句体3
如果 条件表达式3 为false,就继续判断后面的表达式;
....
如果前面所有条件表达式判断都为false,就执行最后的else语句中的代码
// 需求:某个公司有一个绩效系统,根据员工的打分输出对应的绩效级别。[0,60) D [60,80) C [80,90) B [90,100] A
int score = 298;
if(score >= 0 && score < 60) {
System.out.println("您的绩效级别是: D");
}else if(score >= 60 && score < 80){ //注意else和if之间有空格
System.out.println("您的绩效级别是: C");
}else if(score >= 80 && score < 90){
System.out.println("您的绩效级别是: B");
}else if(score >= 90 && score <= 100){
System.out.println("您的绩效级别是: A");
}else {
System.out.println("您录入的分数有毛病~~");
}
2.5 if分支中的注意事项
- if后的括号不加
;
double t = 36.5;
if(money >= 37);{ //此时是错的
System.out.println("体温异常");
}else {
System.out.println("体温正常");
- 若if 后的语句体只有一行,可以省略大括号
double t = 36.9;
if(t > 37.0)
System.out.println("体温异常");
//但一般不这么写,因为这一句很难把控
- 尽量避免使用
==
来判断布尔条件,易出错
boolean t = true;
if(t) //直接将变量写在括号中
System.out.println("体温正常");
三、switch分支
3.1基本语句
switch格式:
String week = "周三";
switch (week){
case "周一":
System.out.println("上班");
break;
case "周二":
System.out.println("请求大牛程序员帮忙");
break;
case "周三":
System.out.println("今晚啤酒、龙虾、小烧烤");
break;
case "周四":
System.out.println("解决bug");
break;
case "周五":
System.out.println("今晚吃鸡");
break;
case "周六":
System.out.println("相亲");
break;
case "周日":
System.out.println("准备上班");
break;
default:
System.out.println("您输入的星期信息不存在");
}
注意:
- 表达式类型只能是byte、short、int、char
JDK5开始支持枚举,JDK7开始支持String
不支持double、float、double - case给出的值不允许重复,且只能是字面量,不能是变量。
- 正常使用switch的时候,不要忘记写break,否则会出现穿透现象。
- case后的值只能是字面量,不能是变量
3.2 if和switch的选择
- 如果是对一个范围进行判断,建议使用if分支结构
- 如果是与一个一个的值比较的时候,建议使用switch分支结构
3.3 switch的穿透现象
若遇到case符合条件开始执行语句体,执行后若没有break,会继续执行下一个case中的语句体,直到遇到break。
四、循环结构
循环结构应用:
累加、服务器,周期性的服务
4.1 for循环结构
//基本格式
for(int i = 0; i < 3; i++) {
System.out.println("Hello World");
} //重复打印三遍hello world
每次循环的执行顺序:
在for结构中可以一次加多个操作:
//如
for(int i=0,j=arry.length;i<j;i++,j--){
}
4.2 while循环结构
int i = 0;
while (i < 3) {
// i = 0 1 2
System.out.println("Hello World");
i++;
}
每次循环的执行顺序:
4.3 for和while的选择
- 一般for循环体while都能实现
- 知道循环次数和循环范围,建议使用for;不知道循环几次,只知道循环结束条件建议使用while
4.4 do-while循环
不常用
//基本格式
初始化语句;
do{
循环体语句;
迭代语句;
}while(); //不同于while,该循环是先执行后判断
4.5 死循环(无限循环)
死循环就是运行后无法终止的循环语句
死循环之下一般不写其他代码
//三种循环体死循环的实现
//for死循环
for ( ; ; ){
System.out.println("Hello World1");
}
//while死循环
while (true) {
System.out.println("Hello World2");
}
//do-while死循环
do {
System.out.println("Hello World3");
}while (true);
死循环的应用场景:
- 可以用来做服务器程序,不断等待用户对服务器的访问
- 小型应用程序,进入后不断检测用户操作
4.6 循环嵌套
1. 定义
所谓循环嵌套就是循环中还嵌入着其他循环,外层循环的每一轮执行,内层都可以完整地执行多轮
2. 格式
//在控制台使用 * 打印出4行5列的矩形
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("*"); // 不换行
}
System.out.println(); //换行
}
4.7 跳转语句 break 、continue
两语句的基本作用:
- break作用:跳出并结束当前所在循环的执行
- continue作用:结束本次循环,进入下一次循环
使用条件:
break:只能用于结束当前循环(有循环嵌套时,跳出内循环),或switch分支(后期会讲到用标号结束嵌套循环)
continue:只能用在循环中
4.8 循环的注意事项
- 在循环体内定义的变量在每轮循环结束后会被清除
idea中快捷键
:100.fori 快速创建1~100的for循环
五、补充:JAVA随机数获取
// 1、导包。import java.util.Random; (idea会自动完成)
import java.util.Random;
// 2、创建一个Random对象,用于生成随机数。
Random r = new Random();
// 3、调用Random提供的功能:nextInt得到随机数。
int data = r.nextInt(10); // 0 - 9整数
//4、生成一个随机范围内的值
如生成7-15
【第一步】令该范围的头为减去同一个数,变成零开头
7-15 -> 左右减7 -> 0-8
【第二步】用上面的语法生成0-8
int data = r.nextInt(8);
【第三步】对生成的随机数加上刚才减去的数
data+=7
本文为自己学习过程中的笔记分享,如有侵权,请联系我