Java流程控制

用户交互Scanner

我们可以通过java.util.Scanner来获取用户的输入

基本语法

Scanner s = new Scanner(System.in);

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

  • next()
    • 一定要读取到有效字符后才可以结束输入
    • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
    • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
    • next()不能得到带有空格的字符串
  • nextLine()
    • 以Enter为结束符
    • 可以获得空白

顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

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

    在这里插入图片描述

  • 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构


选择结构

  • if选择结构

    • 单选择

      if(布尔表达式){

      ​ //如果布尔表达式为true将执行

      }

    • 双选择

      if(布尔表达式){

      ​ //如果布尔表达式为true

      }else{

      ​ //如果布尔表达式为false

      }

    • 多选择

      if(布尔表达式 1){

      ​ //如果布尔表达式 1为true

      }else if(布尔表达式 2){

      ​ //如果布尔表达式 2为true

      }else if(布尔表达式 3){

      ​ //如果布尔表达式 3为true

      }else{

      ​ //如果以上布尔表达式都为false

      }

    • 嵌套

      if(布尔表达式 1){

      ​ //如果布尔表达式 1为true

      ​ if(布尔表达式 2){

      ​ //如果布尔表达式 2 的值为true

      ​ }

      }

  • switch多选择结构

    switch(expression){

    ​ case value1:

    ​ //语句1

    ​ break; //可选

    ​ case value2:

    ​ //语句2

    ​ break; //可选

    ​ default: //可选

    ​ //语句

    }


循环结构

  • While循环

    • While

      while(表达式){

      ​ //循环内容

      }

      • 只要表达式为true,循环能一直跑下去
    • DoWhile

      do{

      ​ //循环内容

      }whiel(布尔表达式)

      • dowhile是先执行后判断
      • dowhile保证循环体至少会执行一次
  • For

    for(初始化;布尔表达式;更新){

    ​ //代码语句

    }

    快捷操作

    ​ 比如进行一百次循环,可以输入100.for自动生成

练习

  1. 计算0到100间奇数和偶数的和
  2. 用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
  3. 打印九九乘法表

答案

public static void main(String[] args) {
        int oddSum =0;
        int evenSum =0;

        for (int i = 1; i <= 100; i++) {
            if(i%2==0){
                evenSum+=i;
            }else{
                oddSum+=i;
            }
        }
        System.out.println("奇数的和"+evenSum);
        System.out.println("偶数的和"+oddSum);
    }
```java
public static void main(String[] args) {
    //for循环
        for (int i = 1; i <= 1000; i++) {
            if (i%5==0)
                System.out.print(i+"\t");
            if(i%15==0)
                System.out.println();
                //System.out.print("\n");
        }
        System.out.println();
	//while循环
        int i=1;
        while (i<=1000)
        {
            if (i%5==0)
                System.out.print(i+"\t");
            if(i%15==0)
                System.out.println();
            i++;
        }
    }
```
public static void main(String[] args) {
        //打印九九乘法表
        for (int i=1;i<=9;i++)
        {
            for (int j=1;j<=i;j++)
            {
                System.out.print(j+"*"+i+"="+j*i+"\t");
            }
            System.out.println();
        }
    }

增强for循环

​ Java5引入了一种主要用于数组或集合的增强型for循环

​ for(声明句子:表达式)

​ {

​ //代码

​ }

声明的新局部变量的类型必须和数组元素类型相匹配,其作用域限定在循环体内,其值与此时数组元素的值相等

  • break

    用于跳出循环

  • continue

    终止这次循环,进行下次循环

  • goto关键字

    Java中没有goto,但是在break和continue中可以带标签laberl:来实现goto

练习

打印一个五行的三角形

public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j=1;j<=5-i;j++)
            {
                System.out.print(" ");
            }
            for (int j = 1; j <=(2*i-1); j++)
            {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
posted @ 2021-04-27 09:57  Karl1  阅读(45)  评论(0编辑  收藏  举报