JavaSE_流程控制

2021-06-01 02:04

阅读:568

标签:blog   stc   spl   这一   ext   控制   lse   public   continue   

1.Scanner

1.1用户交互Scanner

  • java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入
  • 基本语法:
Scanner s = new Scanner(System.in);
  • 可以通过Scanner类的next()与nextLine()方法获取用户输入的字符串,在读取前一般要使用hasNext()与hasNextLine()判断是否还有输入的数据

Scanner的用法:

import java.util.Scanner;//导入Scanner类
public class Demo{
    public static void main(String[] args){
        Scanner s1 = new Scanner(System.in);//将Scanner对象实例化(创建Scanner对象(s1))
        int num = s1.nextInt();//调用Scanner的nextInt()方法,从控制台获取int类型的数
        s1.close();//用完记得关闭
    }
}

1.2Scanner进阶使用

  • 读取前一般要使用hasNext()与hasNextLine()判断是否还有输入的数据,这个的实现就是下面的

使用hasNext()与hasNextLine()判断是否还有输入的数据

import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        Scanner s1 = new Scanner(System.in);
        int i = 0;
        System.out.println("请输入一个int类型的数据");
        if(s1.hasNextInt()){
            i= s1.nextInt();
        }else{
            System.out .println("你要输入int类型数据");
        }
        System.out.println(i);
        s1.close();
    }
}

Scanner的进阶用法

import java.util.Scanner;
public class Demo{
    public static void main(String[] args){
        Scanner s1 = new Scanner(System.in);
        while(s1.hasNextDouble()){
            Double num = s1.nextDouble();
        }
        s1.close();
    }
}

2.顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
  • 顺序结构是最简单的算法结构
  • 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,他是任何一个算法都离不开的一种基本算法结构。

3.选择结构

3.1if-else

  • 语句结构:
if(布尔表达式2){
 语句或语句块;  //当布尔表达式1是true时,走这里
}

为了便于理解,直接上图:
技术图片

 if(布尔表达式2){
  语句或语句块;  //当布尔表达式1是true时,走这里
 }else if(布尔表达式2){
  语句或语句块;  //当布尔表达式2是true时,走这里
 }else{
  语句或语句块;  //当都不满足时,走这里
 }    

还是为了便于理解,直接上图:
技术图片

3.2Switch

  • 语句结构:
switch(变量名){
 case 常量1:
     语句或语句块;
     break
 case 常量2:
     语句或语句块;
     break;
}        

还是一样,直接上图理解:
技术图片

4.循环

4.1while

  • 语句结构:
while(布尔表达式){
 语句或语句块;
}

继续上图:

技术图片

4.2do-while

  • 语句结构
do{
 语句或语句块;
}while(布尔表达式);

不说了,上图:
技术图片

4.3for

4.3.1for

  • 语句结构:
for(初始化表达式;布尔表达式;更改表达式){
 语句或语句块;
}

不废话,上图:
技术图片

4.3.2for-each(增强for)

增强for循环不需要用到下标

for(数组类型 变量名:数组或集合对象){
    //语句或语句块
}

5.break&continue

break&continue

break

break使用说明:

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

break应用实例:

public class TestBreak{
    public static void main(String [] args){
        for(int i = 0;a100;a++){
            if(i==50){
                break;
            }
            System.out.println(i);
        }
    }
}

然后输出结果是这样的:

1
2
3
4
·······
48
49
然后····就没有然后了,因为到这里i==50这个条件满足,进入if语句,执行break,这个for循环已经被终止了。

break使用的注意事项:

  • break语句后不能再有语句,因为此语句永远不会被执行。
public class TestBreak{
    public static void main(String [] args){
        for(int i = 0;i100;i++){
            if(i==50){
                break;
                System.out.println(a);   //此条语句永远都不会被执行
            }
        }
        System.out.println("Hello!")  //当然这一条语句会被执行,因为break终止的只是它所在的循环,而不是整个程序
    }
}

不相信???自己去试!!!

continue

continue使用说明:

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

continue应用实例 :

public class TestContinue{
    public static void main(String [] args){
        for(int i = 0;a100;a++){
            if(i==50){
                continue;
            }
            System.out.println(i);       
        }
    }
}

然后输出结果是这样的:

1
2
3
4
·······
48
49  
51   //这里满足了i==50的条件,进入if语句,执行continue跳过了此次循环。
52
·······
99
100
    

continue使用的注意事项:

——和break的注意事项一样

public class Test{
    public static void main(String [] args){
        for(int i = 0;i100;i++){
            if(i==50){
                continue;
                System.out.println(a);   //此条语句永远都不会被执行
            }
        }
        System.out.println("Hello!")  //当然这一条语句也是会被执行.
    }
}

关于goto关键字

  • goto关键字很早以前就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式的使用:Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子···带标签的break和continue。

带标签的关键字

  • 标签只后面跟一个冒号的标识符,例如:label:
  • 对Java来说唯一用到标签的地方就是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前的循环,但若随标签使用,他们就会中断到存在标签的地方。

——标签的名字是可以随便取的,但是要遵守命名规范。

public class TestBreak{
    public static void main(String [] args){
        label1:for(int a = 0;a100;a++){
            System.out.println(a);
            label2:for(int b =0;b100;b++){
                for(int c = 0;c100;c++){
                    System.out.println(c);
                    break label1;  //它会直接从自身所处的循环一直中断知道中断了带有所属标签的循环
                }
            }
        }
    }
}

break和continue的区别

  • break用于退出循环

  • continue用于跳过本次循环

不懂???没关系——上图(本人画的草图)↓↓↓
技术图片

6.实例

打印九九乘法表

public class Demo {
    public static void main(String[] args){
        for (int i = 1; i  9; i++) {
            for (int j = 1; j  i; j++) {
                System.out.print(j+"X"+i+"="+(j*i)+"\t");
            }
            System.out.println();
        }
    }
}

JavaSE_流程控制

标签:blog   stc   spl   这一   ext   控制   lse   public   continue   

原文地址:https://www.cnblogs.com/jeter/p/14727945.html


评论


亲,登录后才可以留言!