Java学习day04
选择结构与分支
选择结构,根据已知条件进行逻辑判断,满足条件后执行相应的操作。
- If选择结构
语法:if(布尔表达式){ // 代码块 }
执行流程:
- 对布尔表达式进行判断
- 结果为true,则先执行代码块,在执行后续代码
- 结果为false,则跳过代码块,直接执行后续代码。
- If else选择结构
语法:if(布尔表达式){ // 代码块1} else { // 代码块2 }
执行流程:
- 布尔表达式进行判断
- 结果为true,则先执行代码块1,再退出整个结构,执行后续代码
- 结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
int a1 = 10;
if(a1 == 20){
System.out.println(a1);
} else {
System.out.println("a1是不满足条件的");
}
- 多重if选择结构
语法:if(布尔表达式1) { // 代码块1 } else if(布尔表达式2) { //代码块2 } else if(布尔表达式3) { // 代码块3} else { // 代码块4}
执行流程:
- 表达式1为true,则执行代码块1,再退出整个结构
- 表达式2为true,则执行代码块2,再退出整个结构
- 表达式3为true,则执行代码块3,再退出整个结构
- 以上表达式为false,则执行代码块4,再退出整个结构
注意:相互排斥,有一个为true,其他均不再执行,适用区间判断,弹药保证条件顺序(从大到小,从小到大)。
特点:一定有一个语句被执行,即一定有一个结果被输出!
//多重if条件语句
int score = 30;
if(score == 100){
System.out.println("恭喜,满分");
} else if(score >= 90) {
System.out.println("优秀");
}else if(score >= 70) {
System.out.println("良");
}else if(score >= 60) {
System.out.println("合格");
}else {
System.out.println("很遗憾,不及格");
}
- 嵌套if选择结构
语法:if(外层表达式) { if (内层表达式) { // 内层代码块 } else { // 内层代码块2 } else { // 外层代码块 }
执行流程:当外层条件满足时,在判断内层条件。
注意:一个选择结构中,可嵌套另外一个选择结构;嵌套格式正确的情况下,支持任意组合。
//嵌套if条件语句
int a1 = 10;
if(a1 != 20){
if(a1 == 10){
System.out.println("a1是目标对象");
}
} else {
System.out.println("a1是不满足条件的");
}
- 分支结构
语法:switch(变量 | 表达式 ){case 值1: 逻辑代码1; case 值2: 逻辑代码2; case 值n: 逻辑代码n; default: 未满足时的逻辑代码; }
!!!!支持数值类型数据
执行流程:
- 如果变量的值等于值1,则执行逻辑代码1
- 如果变量的值等于值2,则执行逻辑代码2
- 如果变量的值等于值n,则执行逻辑代码n
- 如果变量的值没有匹配的case值,则执行default中的逻辑代码
int a1 = 9;
switch(a1){
case 1:
System.out.println();
break; // 跳出代码块
case 9:
System.out.println("命中");
break;
default:
System.out.println("无法选中");
}
break
关键字作用:跳出当前代码块
注意:break代码下面不能写代码
变量
局部变量
概念:针对与当前代码块中有效变量,也就是说在代码块中定义的变量,都是局部变量,仅仅针对于当前的代码时有效的。
作用域:当前类文件(父级代码块的局部变量子级代码块中可以使用,而子级中代码块声明变量父类代码块)
成员变量
概念:是针对与这个文件都是有效的
作用域:当前整个文件
循环结构
while循环
语法:while(布尔表达式){ // 逻辑代码(循环操作) }
int a1 = 10;
while(a1 <= 15){
System.out.println("a1");
a1++;
}
特点:首次即有入口条件,先判断、再执行,适用于循环数次明确的情况。
do while循环
语法:do { // 逻辑代码 } while (布尔表达式) ;
int a1 = 10;
do{
System.out.println("a1:"+a1);
a1++;
}while(a1 <= 15);
特点: 首次没有入口条件,先执行,再判断。适用于循环次数不明确的情况。
for循环
for(初始部分 ; 循环条件 ;迭代部分) { // 循环操作 }
特点:首次既有入口条件,先判断、再执行,适用于循环次数明确的情况。
嵌套循环
For ( ) { for ( ) { } } 外层控制行数,内层控制列数
Break关键字是用来跳出当前的循环体,continue关键字是跳过当前循环
案例1:在控制台输入一个n,计算n的阶乘,在控制台录入5名同学的分数,并计算平均分。
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int avg = 1;
int avg1 = 1;
int sum = 0;
for (int i = 1; i <= n; i++) {
avg *= i;
}
for (int j = 1; j <= 5; j++) {
System.out.println("请输入第" + j + "位同学的分数");
int scort = input.nextInt();
sum += scort;
}
avg1 = sum / 5;
System.out.println(n + "阶乘" + avg);
System.out.println("五位同学平均分:" + avg1);
}
}
案例2:打印一个等腰三角形
import java.util.Scanner;
public class TestTriangleUpSimple {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i = input.nextInt();
for (int j = 0; j < i; j++) { // 外层控制循环几层
// 打印左侧空白三角形
for (int j2 = j; j2 < i-1; j2++) { // 控制循环每层打印的次数
System.out.print(" ");
}
// 打印右侧*号
for (int j2 = 0; j2 < 2 * j + 1; j2++) {
System.out.print("*");
}
System.out.println();
}
}
}
本文地址:https://blog.csdn.net/weixin_42704812/article/details/107700679
上一篇: Vue 打包问题以及动态修改接口地址