title: 顺序、选择、循环
index_img: https://tuchuangs.com/imgs/2023/07/22/860e4047323f0b1c.png
tags:
- Java SE
categories:
- Java SE
hide: false
excerpt: StringBuilder、常用方法、链式编程
顺序结构
程序按从上到下的顺序执行。
public class Main {
public static void main(String[] args) {
System.out.println("我在前面,我先执行!");
System.out.println("我在中间,我稍后执行!");
System.out.println("我在最后,我最后执行!");
}
}
选择结构
if语句
- 使用
boolean
判断,直接作为表达式或者使用==
{}
不要省略,因为有些语句不好判断是几条语句,如int a = 3
是声明和赋值两条语句。
格式 1
格式
if (条件表达式) {
// 满足条件表达式执行这里的语句
}
案例
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 1;
if (a > b) {
System.out.println(a + ">" + b); //10>1
}
if (a < b) {
System.out.println(a + "<" + b); //不会执行
}
System.out.println("下一条语句"); // 下一条语句
}
}
格式 2
规则
if (条件表达式) {
// 满足条件表达式执行这里的语句
}
else{
// 不满足条件表达式执行这里的语句
}
案例
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 1;
if (a > b) {
System.out.println(a + ">" + b); //10>1
} else {
System.out.println(a + "<" + b); // 不执行
}
System.out.println("下一条语句"); // 下一条语句
}
}
格式 3
规则
if (条件表达式1) {
// 满足条件表达式1执行这里的语句
}
else if(条件表达式2){
// 满足条件表达式2执行这里的语句
}
else if(条件表达式3){
// 满足条件表达式3执行这里的语句
}
......
else{
// 不满足条件表达式执行这里的语句
}
案例
public class Main {
public static void main(String[] args) {
int price = 1000;
Scanner sc = new Scanner(System.in);
int len = sc.nextInt(); //输入5
if (len == 9) {
double value = price * len * 0.1 / 100;
System.out.println("商品打" + len + "折," + "最终价格" + value);
} else if (len == 5) {
double value = price * len * 0.1 / 100;
System.out.println("商品打" + len + "折," + "最终价格" + value); //商品打5折,最终价格5.0
} else if (len == 1) {
double value = price * len * 0.1 / 100;
System.out.println("商品打" + len + "折," + "最终价格" + value);
} else {
System.out.println("原价" + price + "出售");
}
}
}
嵌套
public class Main {
public static void main(String[] args) {
int price = 1000;
Scanner sc = new Scanner(System.in);
int len = 5;
if (0 < len & len < 10) {
System.out.println("数据正常!"); // 数据正常
if (len == 9) {
double value = price * len * 0.1 / 100;
System.out.println("商品打" + len + "折," + "最终价格" + value);
} else if (len == 5) {
double value = price * len * 0.1 / 100;
System.out.println("商品打" + len + "折," + "最终价格" + value); //商品打5折,最终价格5.0
} else if (len == 1) {
double value = price * len * 0.1 / 100;
System.out.println("商品打" + len + "折," + "最终价格" + value);
} else {
System.out.println("原价" + price + "出售");
}
} else {
System.out.println("数据异常!");
}
}
}
switch语句
- 表达式(即要匹配的值):支持
byte
、short
、char
、int
、枚举
(jdk5 之后)、String
(jdk7 之后)case
后的值(只能是字面量,不能是常量,不许重复)与表达式进行匹配- break标识中断,结束
switch
语句,没有break
则会带来穿透效果(即使匹配了也继续执行,直到遇到 break 或者语句结束)default
,特殊的 case,相当于 else
格式 1
语法
switch(表达式){
case 值1:
//语句
break;
case 值2:
//语句
break;
...
default:
//语句
break;
}
案例
public class Main {
public static void main(String[] args) {
int day = 4;
String dayString;
switch (day) {
case 1:
dayString = "Monday";
break;
case 2:
dayString = "Tuesday";
break;
case 3:
dayString = "Wednesday";
break;
case 4:
dayString = "Thursday"; // Thursday
break;
case 5:
dayString = "Friday";
break;
case 6:
dayString = "Saturday";
break;
case 7:
dayString = "Sunday";
break;
default:
dayString = "Invalid day";
break;
}
System.out.println(dayString);
}
}
public class Main {
public static void main(String[] args) {
int day = 4;
String dayString;
switch (day) {
case 1:
dayString = "Monday";
break;
case 2:
dayString = "Tuesday";
break;
case 3:
dayString = "Wednesday";
break;
case 4:
dayString = "Thursday"; // dayString = "Thursday"
// break;
case 5:
dayString = "Friday"; // 由于穿透, dayString = "Friday"
// break;
case 6:
dayString = "Saturday"; // 继续穿透, dayString = "Saturday"
break;
case 7:
dayString = "Sunday";
break;
default:
dayString = "Invalid day";
break;
}
System.out.println(dayString);
}
}
格式 2
jdk12 以后支持,不需要break,避免了遗忘 break 带来的穿透问题。{}
单条语句时可省略。
switch(表达式){
case 值1->{
//语句
}
case 值2->{
// 语句
}
...
default->{
//语句
}
break;
}
public class Main {
public static void main(String[] args) {
int day = 4;
String dayString;
switch (day) {
case 1 -> dayString = "Monday";
case 2 -> dayString = "Tuesday";
case 3 -> dayString = "Wednesday";
case 4 -> dayString = "Thursday"; //Thursday
case 5 -> dayString = "Friday";
case 6 -> dayString = "Saturday";
case 7 -> dayString = "Sunday";
default -> dayString = "Invalid day";
}
System.out.println(dayString);
}
}
if or switch
if
- 适合范围判断
- 支持各种类型
switch
- 适合多个数据选其一
- 支持较少类型
循环结构
-
初始语句只会执行 1 次。
-
条件判断语句每次循环前都会执行
-
条件控制语句在每次循环结束后才执行。
for 循环
语法
for(初始语句;条件判断;条件控制){
//满足条件执行的语句
}
案例
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.print(i + " "); //0 1 2 3 4 5 6 7 8 9
}
}
}
foreach循环
即增强for循环。
for (元素类型 元素变量 : 集合或数组) {
// 循环体
}
示例代码:
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.print(num + " "); // 1 2 3 4
}
}
}
forEach
可以在集合类(如List、Set)或Map上使用。
collection.stream()
.filter(predicate)
.map(mapper)
.forEach(action);
示例代码:
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.stream()
.filter(fruit -> fruit.startsWith("A"))
.forEach(System.out::println);
while 循环
语法
初始化语句;
while(条件判断){
//满足条件执行的语句
//条件控制语句
}
案例
public class Main {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.print(i + " ");//0 1 2 3 4 5 6 7 8 9
}
}
}
标签:case,break,顺序,System,选择,语句,循环,dayString,out
From: https://www.cnblogs.com/SimpleWord/p/17689192.html