03 Java流程控制
1、用户交互Scanner
Java的工具类,可以通过Scanner类来获取用户的输入。包名:java.util.Scanner
import java.util.Scanner
Scanner sc = new Scanner(System.in);
// sc.hasNext() 与 sc.hasNextLine() 判断是否还有输入的数据
if (sc.hasNextLine()){
// sc.next() 与 sc.nextLine() 获取输入字符串
String str = sc.nextLine()
}
sc.close() // 养成良好习惯,凡是IO流的类使用后记得关闭防止一直占用资源
next():
- 得读到有效字符才能结束输入。
- 输入有效字符前的空白,next () 方法会自动去掉。
- 输入有效字符后,其后面的空白才被当作分隔符或结束符。
- next () 无法获取带空格的字符串。
nextLine():
- 以Enter为结尾符
- 可以获得空白
2、顺序结构
JAVA 基本结构是顺序结构,没特别说明就按顺序一句句执行,这是最简单的算法结构。
3、选择结构
- if单选择结构
if(布尔表达式){
// 如果布尔表达式的值为true
}
- if双选择结构
if(布尔表达式){
// 如果布尔表达式的值为true
}else{
// 如果布尔表达式的值为false
}
- if多选择结构
if(布尔表达式 1){
// 如果布尔表达式 1的值为true
}else if(布尔表达式 2){
// 如果布尔表达式 2的值为true
}else if(布尔表达式 3){
// 如果布尔表达式 3的值为true
}else{
// 如果以上布尔表达式的值都不为true
}
- 嵌套的if结构
if(布尔表达式 1){
// 如果布尔表达式 1的值为true
if(布尔表达式 2){
// 如果布尔表达式 2的值为true
}
- switch多选择结构
switch(expression){
case value1:
// 语句
break; // 可选
case value2:
// 语句
break; // 可选
// 你可以有任意数量的case语句
default : // 可选
// 语句
}
/**
增强型switch多选择结构
*/
result = switch (operator) {
case "+" -> add(first, second);
case "-" -> subtract(first, second);
case "*" -> multiply(first, second);
case "/" -> divide(first, second);
default -> result;
}
4、循环结构
- while 循环
while(布尔表达式){
// 循环内容
}
/**
布尔表达式为true,循环就持续执行。要让循环停下,需使表达式为false来结束循环。
少数情况如服务器请求响应监听,循环需一直执行。
循环条件一直为真会形成死循环,正常业务编程应尽量避免,否则影响程序性能或导致程序卡死崩溃。
*/
- do...while 循环
do{
// 循环内容
}while(布尔表达式);
/**
do...while 循环和 while 循环相似,不过 do...while 循环至少会执行一次。
while 是先判断后执行,do...while 是先执行后判断。
*/
- for 循环
for(初始值; 布尔表达式; 更新){
// 循环内容
}
/**
Java 还提供了 for 循环,让一些循环结构更简单。
for 循环语句是支持迭代的通用结构,是最有效、最灵活的循环结构。
关于 for 循环有以下几点说明:
最先执行初始化表达式,可声明一种类型,能初始化一个或多个循环控制变量,也可留空。
然后执行布尔表达式,若为 true,循环继续,开始执行循环体后面的语句;若为 false,循环停止。
执行一次循环体后,更新循环控制变量(通过因子控制循环变量的增减),再次检测布尔表达式。
*/
// IDEA编码时可通过100.for+Enter建可以生成(仅限数值)
for (int i = 0; i < 100; i++) {
}
- 增强 for 循环
for(声明语句 : 表达式){
// 循环内容
}
/**
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
*/
5、break & continue
/**
break 可用于任何循环语句主体部分,能强行退出循环,不执行剩余语句,也可在 switch 语句中使用。
continue 语句用于循环语句体中,可终止某次循环过程,跳过未执行语句,接着判定下一次是否执行循环。
*/
6、练习
/**
打印三角形 5行的三角形
*/
for(int i=1; i<=5; i++){
for(int j=5; j>=i; j--){
System.out.print(" ");
}
for(int k=1; k<=2*i; k++){
System.out.print("*");
}
System.out.println();
}

浙公网安备 33010602011771号