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();
}

posted @ 2025-01-12 22:58  没关系都是……  阅读(25)  评论(0)    收藏  举报