Java初学者之简介流程控制方式

    科技2022-07-11  93

    Java流程控制

    用户交互Scanner

    ​ Java提供的一个工具类:java.util.Scanner,我们可以通过Scanner类来获取用户的输入。

    凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯,使用完就关掉

    ​ 关闭的语法:scanner.close();

    基本语法

    Scanner s = new Scanner(System.in);

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

    next():

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

    即:一般来说,使用next()方法在读取到输入的空格时就会结束读取

    nextLine():

    以Enter(回车)为结束符,即使用nextLine()方法可以获取到回车之前的所有字符nextLine()可以获得空白符

    ​ hasNext()与hasNextLine()类比next()和nextLine()

    顺序结构

    ​ Java的基本结构就是顺序结构,除非特别指明,否则将按照自上而下的顺序依次执行

    选择结构

    if单选泽结构

    语法

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

    if双选泽结构

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

    if多选泽结构

    if(布尔表达式1){ //如果布尔表达式1为true将执行的语句 }else if(布尔表达式2){ //如果布尔表达式2为true将执行的语句 }else if(布尔表达式3){ //如果布尔表达式3为true将执行的语句 }else{ //如果以上布尔表达式都不为true将执行的语句 }

    嵌套的if结构

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

    switch多选择结构

    switch(X){ //X的类型可以是byte,short,int或者char(从Java SE 7开始 X支持String类型了) case A://判断X==A,若为true,则执行语句1,否则跳到近的下一个case或者default //语句1 break; //可选 case B://判断X==B,若为true,则执行语句2,否则跳到近的下一个case或者default //语句2 break; //可选 case C://判断X==C,若为true,则执行语句3,否则跳到近的下一个case或者default //语句3 break; //可选 case D,case E,case F://判断X==D,X==E,X==F,若其中有一个为true,则执行语句4,否则跳到最近的下一个case或者default //语句4 break; //可选 default: //可选 //语句5 }//case后的A,B,C,D,E必须为字符串常量或者字面量

    反编译(IDEA):

    ​ 在IDEA中,可以直接将.class文件放入src文件里然后打开


    循环结构

    while循环

    while(布尔表达式){ //循环内容 }

    ​ 执行此代码时,先判断布尔表达式,若为true 则执行循环内容,执行完之后再次判断布尔表达式,若为真,则再次执行循环内容,直到表达式结果为false或者程序为死循环(尽可能避免死循环)

    **执行次数:**0-N

    do…while循环

    do{ //循环内容 }while(布尔表达式);

    ​ 先执行一次循环内容再判断布尔表达式,若为true,则继续执行循环内容,直到表达式结果为false或者程序为死循环(尽可能避免死循环)

    **执行次数:**1-N

    ​ 注意:在do…while语句结束时,后面要加";"

    ***while和do…while的区别:***while先判断后执行,而do…while先执行后判断,do…while能保证至少执行一次,而while则可能一次都不执行

    for循环

    for(初始化;布尔表达式;更新){ //循环内容 }

    ​ 在整个for循环中,初始化只执行一次,然后判断布尔表达式,若为true则执行循环内容,执行完循环内容之后执行更新,然后再进行布尔表达式判断,若为true则再次执行循环内容,然后再次更新再次判断,直到布尔表达式为false为止

    ​ 虽然使用while和do…while循环可以实现所有的循环要求,但是使用for循环是一种更高效的循环方式

    在Java5中引入了一种主要用于数组的增强型for循环:

    for(声明语句:表达式){ //循环内容 } //如: int[] numbers = {10,20,30,40,50};//定义一个数组 for(int x : numbers){ System.out.println(x); }

    ​ 相当于让依次将数组numbers的值赋给x,并每一次重新赋值时执行一次{}中的语句

    break&continue

    **break:**在任何循环语句的主体部分均可使用break来控制循环流程,其作用是强行跳出循环去执行循环后的代码,不再执行循环中的其余部分

    **continue:**用于跳出本次循环,不再执行本次循环中的剩余语句,直接进行下一次循环

    ​ break和continue可以使用标签,以其中一个为例:

    one:for(;;){ for(;;){ //代码 if(){ continue one; } //代码 } }

    ​ 在以上代码中,若没有one标签,则在执行到continue语句时会自动跳转到下一次的内层for循环,但加上one标签后则会跳转到标签所标记的位置继续运行

    Processed: 0.035, SQL: 8