JavaFlowContral

流程控制

  1. 用户交互Scanner

  2. 顺序结构

  3. 选择结构

  4. 循环结构

  5. break&cantinue

  6. 练习

用户交互scanner(扫描器对象)

  • java.util.scanner是java5的新特性

  • 可以通过scanner 类来获取用户的输入

基本语法

  • 基本语法show
        Scanner scanner = new Scanner(System.in);
  • 通过scanner类的next()与nextLine()方法获取输入的字符串show
        String s = scanner.next();

        String s = scanner.nextLine();
  • 通过hasNext()与hasNextLine()判断是否还有还有输入的依据show
 int score =scanner.hasNext();


 int score =scanner.hasNextLine();

使用完scanner必须用scanner.close()语句进行关闭。凡是属于IO流的类如果不关闭会一直占用资源!!! 养成及时关闭的好习惯!!!

Example Code

package com.GoOver;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) 
        //创建一个扫描器对象对象名为a,用于接收键盘数据
        Scanner a = new Scanner(System.in);
        //作为当前输入提示:"接受系统输入的数据"
        System.out.println("接受系统输入的数据");
        //判断对象a是还有值否有值输入,如果有输出这句话
        if(a.hasNext()){
            //设置一个字符串变量,将a.next()的值赋给它
            String str = a.next();
            //输出str变量
            System.out.println(str);
        }
        //关闭scanner节省资源//在关闭scanner对象时,要对应scanner对象名a进行关闭!!!
        a.close();
    }
}
D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=56766:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo01
接受系统输入的数据
creation
creation

Process finished with exit code 0
  • next()

    • 一定要读取到有效字符后才可以结束输入。

    • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

    D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=56965:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo01
    接受系统输入的数据
         kkk
    kkk
    
    Process finished with exit code 0
    
    • 只有输入有效字符后将其后面输入的空白作为分隔符或者结束符。
    D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=56984:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo01
    接受系统输入的数据
    k 看
    k
    
    Process finished with exit code 0
    
    • next()不能得到有空的字符串。
  • nextLine()

    • 以Enter为结束符,也就是说nextLine()方法返回是输入回车之前的所有字符。
    import java.util.Scanner;
    
    public class Demo02 {
        public static void main(String[] args) {
            //创建一个扫描器对象对象名为a,用于接收键盘数据
            Scanner a = new Scanner(System.in);
            //作为当前输入提示:"接受系统输入的数据"
            System.out.println("接受系统输入的数据");
            //判断对象a是还有值否有值输入,如果有输出这句话
            if(a.hasNextLine()){
                //设置一个字符串变量,将a.next()的值赋给它
                String str = a.nextLine();
                //输出str变量
                System.out.println(str);
            }
            //关闭scanner节省资源//在关闭scanner对象时,要对应scanner对象名a进行关闭!!!
            a.close();
        }
    } 
    
    D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=57016:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo02
    接受系统输入的数据
    可口可 kkk
    可口可 kkk
    
    Process finished with exit code 0
    
    • 可以获得空白。
    D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=57040:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo02
    接受系统输入的数据
    

    Process finished with exit code 0

Ssanner对象操作实例

```java
package com.GoOver;

import java.util.Scanner;
//我们可已输入多个数字,并求其总和与平均数,每一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
public class Demo04 {
  public static void main(String[] args) {
      //创建一个扫描器对象,接收键盘输入
      Scanner scanner = new Scanner(System.in);
      //创建两个变量,d变量给赋值数字和,i变量进行累加次数的计数。
      double d = 0;
      double i =0;
      //输出一个提示文字
      System.out.println("请输入一个数字");
      //创建一个while循环,判断条件为下一次的输入doubilt值是否为真
      while (scanner.hasNextDouble()) {
          //将输入值和上一次的d赋值给d
          d = d + scanner.nextDouble();
          //i边量随循环自增
          i++;
      }
      //输出变量d和(d/i)
      System.out.println("总和为"+d);
      System.out.println("平均数为"+(d/i));
      //关闭扫描器,节省i/O流
      scanner.close();
  }
}

输出结果:

D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=63455:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo04
请输入一个数字
8

6

y
总和为14.0
平均数为7.0

注意点:scanner对象一定要关闭!!!一定要关闭!!!scanner.close()。new一个scanner后就将其关闭

顺序结构

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

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

语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的。

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

package com.GoOver;

public class Demo05 {
    public static void main(String[] args) {
        System.out.println("hello1");
        System.out.println("hello2");
        System.out.println("hello3");
        System.out.println("hello4");
        System.out.println("hello5");
    }
}

Run

D:\java_Learning\java\jdk1.8\bin\java.exe "-javaagent:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=53203:D:\java_Learning\idea\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java_Learning\java\jdk1.8\jre\lib\charsets.jar;D:\java_Learning\java\jdk1.8\jre\lib\deploy.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\cldrdata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\dnsns.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jaccess.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\jfxrt.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\localedata.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\nashorn.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunec.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\java_Learning\java\jdk1.8\jre\lib\ext\zipfs.jar;D:\java_Learning\java\jdk1.8\jre\lib\javaws.jar;D:\java_Learning\java\jdk1.8\jre\lib\jce.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfr.jar;D:\java_Learning\java\jdk1.8\jre\lib\jfxswt.jar;D:\java_Learning\java\jdk1.8\jre\lib\jsse.jar;D:\java_Learning\java\jdk1.8\jre\lib\management-agent.jar;D:\java_Learning\java\jdk1.8\jre\lib\plugin.jar;D:\java_Learning\java\jdk1.8\jre\lib\resources.jar;D:\java_Learning\java\jdk1.8\jre\lib\rt.jar;C:\Users\86130\Desktop\Javase\out\production\Basicgrammar com.GoOver.Demo05
hello1
hello2
hello3
hello4
hello5

Process finished with exit code 0

选择结构

if单选择结构

判断一个东西是否可执行,然后我们才去执行,这样一个过程中用if语句来表示

public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        String s = scanner.nextLine();

        //equals:判断字符串是否相等
        /*
        if(布尔表达式){
           //如果布尔表达式为true将执行的语句
        }
        */
        if(s.equals("Hello")){
            System.out.println(s);
        }
        System.out.println("End");

        scanner.close();
    }
}

equals:判断字符串是否相等

        //equals:判断字符串是否相等
        if(s.equals("Hello" ))

if双选择结构

![](file://C:\Users\86130\Desktop\java学习\java学习图片\if双选择结构.png)

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 考试分数大于等于60分就是及格,小于60分为不及格
        System.out.println("请输入考试分数");
        int score =scanner.nextInt();

        //如果成绩大于等于60及格
        if (score >= 60){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
        scanner.close();
    }
}

if多选择结构

![](file://C:\Users\86130\Desktop\java学习\java学习图片\if多选择结构.png)

public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int score =scanner.nextInt();
        //判断下一步是否还有输入整数
        if (score>=90){
            System.out.println("成绩为A档");
        }else if (score>=75){
            System.out.println("成绩为B档");
        }else if (score>=60){
                System.out.println("成绩为C档");
        }else
            System.out.println("成绩为D档");
        scanner.close();
    }
}
//程序一定要严谨,要考虑到输入的合理区间!!!!其上代码不够严谨没有考虑输入区间

![](file://C:\Users\86130\Desktop\java学习\java学习图片\if多选择结构执行条件.png)

嵌套的if结构

![](file://C:\Users\86130\Desktop\java学习\java学习图片\嵌套的if结构.png)

switch选择结构

  • 多选择结构还有一种实现方式就是switch case语句

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

public class Demo05 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入分数:");
        String grade = scanner.nextLine();
        //将变量类型为字符串‘C’的值赋值给变量名grade
        switch (grade){
            case "A":
                System.out.println("优秀");
                break;//可选
            case "B":
                System.out.println("良好");
                break;//可选
            case "C":
                System.out.println("一般");
                break;//可选
            case "D":
                System.out.println("差");
                break;//可选
            default:
                System.out.println("未知的");
        }
    }
}

其中每写一个case都需要把break加上否则会出现case穿透现象!!!

  • switch语句中的变量类型可以是:byte、short、int后者char

  • java se7开始switch支持字符串string类型

  • case标签必须为字符串常量或字面量

  • switch匹配一个具体的值

while循环

while是最基本的循环

public class Demo06 {
    public static void main(String[] args) {
        //输出0·100
        int i = 0;
        while(i<100){
            i++;
            System.out.println(i);
        }

    }
}
  • 只要布尔表达式为true,循环就会一直执行下去

  • 大多数情况下会让循环停止,需要一个让表达式失败的方式来结束xunhuan。

  • 少部分情况下需要循环一直执行,比如服务器的请求响应监听

  • 循环条件一直为true,就会造成无限循环(死循环),影响程序性能使程序卡死或程序崩溃!

do...while 循环

对于while语言,如果不满足条件,则不能进入循环,单有时侯我们即使不满足条件也执行一次。

do...while循环和while循环相似,不同的是do...while循环会至少执行一次。

public class Demo08 {
    public static void main(String[] args) {
        int i = 1;
        int sum = 0;
        do{
            sum = sum +i;
            i++;
        }while (i<=100);
        System.out.println(sum);
    }
}

while和do...while区别

while先判断后执行,do...是执行后判断

do...while总是保证循环体会被执行一次!这是他们主要差别

for循环

  • 虽然所有循环结构都可以用while或者do...while表示,当java提供了另一种语句-for循环,使结构变得简单。

  • for循环语句式支持迭代的一种通用结构,是最有效、最灵活的循环结构。

  • for循环执行的次数是执行前就确认语句

    //while与for的比较如图

public class Demo09 {
    public static void main(String[] args) {
        int a =1;//初始化条件
        while (a<=100){//条件判断
            System.out.println(a);//循环体
            a+=2;//迭代
        }
        System.out.println("while循环结束!");

        //初始化//条件判断//迭代
        for (int i =1;i <= 100;i++){
            System.out.println(i);
        }
        System.out.println("for循环结束!");
    }
   }

平日积累

=为赋值符号 ==才为等于号!!!

换行符System.out.println();

  • System.out.print("\n");

  • println输出完换行,print输出完不会换行

增强型for循环

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

java增强for循环语法格式如下:

for(声明语句:表达式)
  {
    //代码语句
}

声名语句:

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

表达式是访问的数组名或者返回为数组的方法。

break continue

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

  • continue 语句在循环语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句有,接着进行下一次是否执行循环的判定。

关于go to关键字

  • goto关键字在早期程序设计语言中就出现,goto为java中的一个保留字,未在语言中正式使用;java无goto

  • 带标签的break与continue存在goto的影子

  • "标签"是指后面跟一个冒号的标识符如label

  • 对java来说唯一用到标签的地方在循环语句之前,而在循环之前设置标签的唯一理由是:希望在其中嵌套另一个循环,由于break和continue关键字通常只为中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

posted @   sh_study  阅读(181)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示