JavaSE流程控制

Java流程控制

一、用户交互Scanner

Scanner类

java.util.Scanner是JDK5的新特性,可以通过Scanner类来获取用户的输入。

  • 基本语法

Scanner s = new Scanner(System.in);

  • 通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串。

    在读取之前如需判断,使用 hasNext() 与 hasNextLine() 来判断是否还有输入的数据。

    此外,可以使用 nextInt()、nextDouble() 等方法获取指定类型的输入数据

  • next()

    1. 读取到有效字符后才可以结束输入;
    2. 有效字符之前的空格,会自动去掉;
    3. 输入有效字符后的空格作为分隔符或结束符;
    4. 不能得到带有空格的字符串
  • nextLine()

    以 Enter 为结束符,返回的是输入回车之前所有的字符,包括空格

  • 最后一定要调用 close() 方法关闭IO流

import java.util.Scanner;

public class Demo {
  public static void main(String[] args) {
    System.out.println("请输入数据:");
    // 从键盘接收数据
    Scanner scanner = new Scanner(System.in);
    String str = scanner.nextLine();
    System.out.println("输入的内容为:" + str);
    // 凡是属于IO流的类,如果不关闭会一直占用资源,用完就关闭,防止占用资源
    scanner.close();
  }
}

二、顺序结构

  • Java的基本结构就是顺序结构,除非指定,否则程序会按照顺序逐句执行。

  • 顺序结构是最简单的算法结构。

  • 语句之间、代码块之间是按照从上到下的顺序进行的,是由若干个依次执行的处理步骤组成的,

    是任何一种算法都离不开的一种基本算法结构!

三、选择结构

1. if 单选泽结构

判断条件是否成立,再执行一段代码。

if(判断表达式) {
  /*
  	需要执行的代码
  */
}

2. if 双选择结构

根据判断条件,程序有两条路可走。

if(判断表达式) {
  // 表达式为真执行的代码
} else {
  // 表达式为假执行的代码
}

3. if 多选择结构

程序的运行有多种可能。

if(判断表达式1) {
  
} else if(判断表达式2) {
  
} else if(判断表达式3) {
  
} ... {
  
} else {
  
}

4. 嵌套的 if 结构

在一个 if 里面嵌套另一个 if。

if(判断表达式1) {
  if(判断表达式2) {
    
  }
}

5. switch 多选择结构

多选择结构除了使用 if—else if—else,还可以使用 switch case 语句。

该语句判断一个变量与一系列值中的某个值是否相等,来实现程序不同的分支。

switch 语句的变量类型可以是:

  • byte、short、int、char
  • 从 JDK1.7 开始,支持 String 类型,本质还是数字
  • 同时 case 标签必须为字符串常量或字面量。
// 匹配一个具体的值
switch(表达式) {
  case value:
    // 执行代码
    break;  // 可选,不写的话会往下执行,case穿透
  case value:
    // 执行代码
    break;
  // 任意数量的case语句
  default: // 可选
    // 执行代码
}

四、循环结构

1. while

while(表达式) {
  // 循环执行的代码
}
  • 只要表达式为真,循环就会一直执行。
  • 如果表达式不成立,循环体不会被执行
  • 绝大多数情况下要让循环停止,所以需要一个方式让表达式为假
  • 少数情况下需要循环一直执行,比如聊天服务器的定时循环监听等。
  • 在实际的业务开发过程中,应该避免产生死循环!!!

2. do-while

do {
  // 循环执行的代码
} while(表达式);

while 和 do-while 的区别

  • while 先判断后执行,do-while 先执行后判断
  • do-while 总是保证循环体至少被执行一次!这是主要差别。

3. for

for(初始化; 布尔表达式; 变量更新) {
  // 循环执行的代码
}

// 死循环
for(;;) {
  // 循环体
}
  • for 循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构
  • for 循环的执行次数在循环开始之前就已经确定了。

4. 增强 for 循环

JDK5 引入,数组、集合的遍历重点使用。

for(声明语句: 表达式) {
  // 代码
}
  • 声明语句:声明新的局部变量,变量的类型必须和数组元素的类型匹配,作用域限定在循环语句块,值与数组元素的值相等。
  • 表达式:要访问的数组名,或者是返回值为数组的方法。
public static void main(String[] args) {
  int[] numbers = {10, 20, 30, 40, 50};  // 定义了一个数组
  
  for(int x: numbers) {
    System.out.println(x);  // 依次输出数组中的所有元素
  }
}

五、break&continue

1. break

  • 在任何循环语句的主体部分,都可以使用 break 控制循环的流程。
  • break 用于强制退出循环,不再执行循环体中剩余的语句。
  • break 语句也可用在 switch 语句中。

2. continue

  • 在循环语句中使用,用于终止某一次循环
  • 跳过循环体中剩余未执行的代码,立即进行是否进行下一次循环的判定。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值