Java流程控制

139 阅读2分钟

一、用户交互Scanner

scanner对象

通过java.util.Scanner类来获取用户的输入。

基本语法:
Scanner s = new Scanner(System.in); s.close();//对于IO流,用完就要关闭

通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要用hasNext()与hasNextLine()判断是否还有输入数据

  1. next():
  • 一定要读取到有效字符后才可以结束输入。
  • 以有效字符后的空白作为分隔符或结束符,不能得到带有空格的字符串
  1. nextLine():
  • 是以Enter键作为结束符,可以获得空白

示例:

1、next()和hasNext()

image.png

2、hasNext()和hasNextLine()

image.png

3、 进阶使用

image.png

image.png

二、顺序结构

程序从上到下依次执行

三、选择结构

  1. if 单选择结构

if (布尔表达式){
//如果布尔表达式为true将执行的语句
}

  1. if 双选择结构

if (布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
// 如果布尔表达式的值为false
}

  1. if 多选择结构(匹配一个范围)

image.png

示例:

image.png

  1. 嵌套的if结构

5. switch多选择结构(匹配一个具体的值)

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

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

  1. byte、short、int或char
  2. 从 JavaSE 7 开始,还支持String 类型
  3. 同时case 标签必须为字符串常量或字面量

image.png

示例:

image.png

image.png

4、循环结构

  1. while循环

image.png

  • 只要布尔表达式为true,循环就会一直执行下去
  • 大多数情况是会让循环停止的,需要一个表达式失效的方式来结束循环。避免死循环。
  • 少部分情况需要一直循环,比如服务器的请求响应监听等 示例:

image.png

  1. do...while循环

image.png

  • 对于while语句,不满足条件就不能进入循环,然而do...while循环至少会执行一次

  • while的do...while的区别:

    • while:先判断后执行
    • do...while:先执行再判断

示例:

image.png

3. for 循环

image.png

  • for循环是最有效、最灵活的循环结构

  • 执行的次数是在执行前就确定的。

  • 说明:

    • 最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可是空语句。
    • 然后检查布尔表达式的值,如果为true,循环体执行,false循环终止。
    • 执行一次循环后,更新循环控制变量,再检查布尔表达式,迭代。

image.png

示例:

练习1:计算0到100间的奇数和偶数的和

image.png

练习2:用while或for 循环输出1-1000间能被5整除的数,并且每行输出3个

image.png

结果:

image.png

练习3:打印99乘法表

forint i=1;i<=9;i++){
  for(int j=1;j<=i;j++)
  {
     System.out.print(j +" * " + i +" ="+ i*j+"\t");
  }
     System.out.println();
}

结果:

image.png

  1. 增强for循环
  • 先了解,在之后数组重点使用
  • Java5引入的一种主要用于数组或集合的增强型for循环

image.png

示例如下:

image.png

5、break & continue

  1. break 终止循环
  2. continue 用于终止某次循环,执行后续的循环

6、练习

//打印五行三角形

for (int i = 1; i <= 5; i++){
  for(int j = 5; j >= i; j--){
    System.out.print(" ");
  }
  for(int j = 1; j <= i; j++){
    System.out.print("*");
  }
  for(int j = 1; j < i; j++){
    System.out.print("*")
  }
  System.out.println();
}

运行结果:

image.png