Java的流程管制

  • 根底阶段 目录:
  1. 用户交互Scanner
  2. 程序构造
  3. 抉择构造
  4. 循环构造
  5. break & continue
  6. 练习题

1.Scanner对象

  • 之前咱们学的根本语法中并没有实现程序和人的交互,然而Java给咱们提供了这样一个工具类,咱们能够获取用户的输出。Java.util.Scanner是Java5的新特色,咱们能够通过Scanner类来获取用户的输出。
  • 根本语法:
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()办法获取输出的字符串,在读取前咱们个别须要应用hasNext()与hasNextLine()判断是否还有输出的数据。
  • next():
  1. 肯定要读取到无效字符后才能够完结输出。//必须要输出否则程序不进行
  2. 对输出无效字符之前遇到的空白,next()办法会主动将其去掉。//Hello World 只输入Hello因为有空格
  3. 只有输出无效字符才将其前面输出的空白作为分隔符或者结束符。/’/只有程序中有空格就完结’
  4. next()不能失去带有空格的字符串。

应用next()的例子:

package com.company.base;import java.util.Scanner;public class demo1 {    public static void main(String[] args) {        //创立一个扫描器对象,用于承受键盘数据        Scanner scanner = new Scanner(System.in);        System.out.println("应用next形式接管:");        //判断用户有没有输出字符串        if (scanner.hasNext()){            //应用next形式接管            String str = scanner.next();            System.out.println("输入的内容为:"+str);        }        scanner.close(); //IO流的用完记得关掉 占用内存 IO流就是输入输出流 和电脑替换信息的    }}
  • nextLine()

    1. 以Enter为结束符,也就是说nextLine()办法返回的是输出回车之前的所有字符。
    2. 能够取得空白。
package com.company.base;import java.util.Scanner;public class demo2 {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        System.out.println("请输出数据");        if(scanner.hasNextLine()){            String abc = scanner.nextLine();            System.out.println("输入:"+abc);        }        scanner.close();    }}
  • 判断整数与小数的scanner
package com.company.base;import java.util.Scanner;public class demo4 {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        //从键盘接收数据        int i = 0;        float f = 0.0f;        System.out.println("请输出整数:");        //如果。。。那么。。。        if (scanner.hasNextInt()){            i = scanner.nextInt();            System.out.println("整数数据:"+ i);        }else {            System.out.println("输出的不是整数数据");        }        System.out.println("请输出小数");    if (scanner.hasNextFloat()){        f = scanner.nextFloat();        System.out.println("小数数据:"+ f);    }else {        System.out.println("输出的不是小数数据!");    }scanner.close();    }}

做一个繁难计算器

package com.company.base;import java.util.Scanner;public class demo5 {    public static void main(String[] args) {        //咱们能够输出多个数字,并求其总和与平均数,每一个数字用回车确认,通过输出非数字来完结输出并输入执行后果:        Scanner scanner = new Scanner(System.in);        //和        double sum = 0;        //计算输出了多少个数字        int m = 0;        //通过循环判断是否还有输出,并在外面对每一次进行求和和统计        while (scanner.hasNextDouble()){            double x = scanner.nextDouble();            m = m+1;//m++            sum = sum + x;            System.out.println("你输出了第"+m+"个数据,而后点钱后果sum"+sum);        }        System.out.println(m +"个数的和为"+ sum);        System.out.println(m+ "个数的平均值是"+(sum / m));        scanner.close();    }}

2.程序构造

  • Java的根本构造就是程序构造,除非特地指明,负责就依照程序一句句执行。
  • 程序构造是最简略的算法构造。
  • 语句与语句之间,框与框之间是按从上到下的程序进行的,它是由若干个顺次执行的解决步骤组成的,它是任何一个算法都离不开的一种根本的算法构造。

    那还没搞明确 那就给上面的RUN一下你就晓得了

package com.company.base;public class demo6 {    public static void main(String[] args) {        System.out.println("1");        System.out.println("2");        System.out.println("3");        System.out.println("4");        System.out.println("5");        System.out.println("6");        System.out.println("7");        System.out.println("8");    }}

3.抉择构造(很重要的)

  • if单抉择构造
  • if双抉择构造
  • if多抉择构造
  • 嵌套的if构造
  • switch多抉择构造
  1. if单抉择构造
  • 咱们很多时候须要去判断一个货色是否可行,而后咱们才去执行,这样一个过程在程序中用if语句来示意
  • 语法:
if(布尔表达式){    //如果布尔表达式为true将执行的语句,否则跳过}
  1. if双抉择构造
  • 须要两个判断时,就须要一个双选则构造,所以就有了if-else构造。
  • 语法:
if(布尔表达式){    //如果布尔表达式的值为true}else{    //如果布尔表达式的值为false}
package com.company.ifdemo;import java.util.Scanner;public class if2 {    public static void main(String[] args) {    //考试分数大于60就是及格,小于60分就是不及格        Scanner scanner = new Scanner(System.in);        System.out.println("请输出问题:");        int score = scanner.nextInt();        if (score>60){            System.out.println("及格");        }else {            System.out.println("不及格");        }    }}
  1. if多抉择构造
  • 咱们发现方才的代码不符合实际状况,实在的状况还可能存在ABCD,存在区间多级判断。比方90-100就是A,80-90就是B等等。在生活中很多时候咱们的抉择也不仅仅就只有这两个,所以咱们须要一个多抉择构造来解决这类问题。
if(布尔表达式1){    //如果布尔表达式1的值为true执行代码}else if(布尔表达式2){    //如果布尔表达式2的值为true执行代码}else if(布尔表达式3){    //如果布尔表达式3的值为true执行代码}else{    //如果以上布尔表达式都不为true执行代码}   
package com.company.ifdemo;import java.util.Scanner;public class if3 {    public static void main(String[] args) {        //考试分数大于60就是及格,小于60分就是不及格        Scanner scanner = new Scanner(System.in);        System.out.println("请输出问题:");        int score = scanner.nextInt();/*if语句至少有一个else语句,else语句在所有的else if语句之后。if语句能够有若干个else if语句,它们必须在else语句之前。一旦其中一个else if 语句检测为true,其余的else if以及else语句都将跳过执行 */        if (score == 100) {            System.out.println("祝贺你 你失去了满分");        } else if (score < 100 && score >= 90) {            System.out.println("A级");        } else if (score < 90 && score >=80) {            System.out.println("B级");        } else if (score < 80 && score >= 70) {            System.out.println("C级");        }else if (score<70 && score>=60){            System.out.println("D级");    }else if (score<60 && score>=0){            System.out.println("不及格好好学习吧");        }  }}
4.  嵌套的if构造    *   应用嵌套的if…else语句是非法的。也就是说你能够在另一个if或者else if语句中应用if或者else if语句。你能够像if语句一样嵌套else if…else。    *   语法
if(布尔表达式1){    //如果布尔表达式1的值为true执行代码    if(布尔表达式2){        //如果布尔表达式2的值为true执行代码    }}

4.Switch多抉择构造

  • 多抉择构造还有一个实现形式就是switch case语句。
  • switch case语句能判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
  • switch语句中的变量类型能够是:

    • byte、short、int、或者char
    • 从Java SE 7 开始
    • switch反对字符串String类型了
    • 同时case 标签必须为字符串常量或者字面量。
 Switch(expression){            case value:                //语句                break;//可选            case value:                //语句                break;//可选            //你能够有任意数量的case语句        default://可选            //语句        }

第一个例子:

package com.company.jiaohuan;public class JH {    public static void main(String[] args) {       //        char grade = 'A';        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;//可选            case 'E':                System.out.println("拉了兄弟");                break;//可选            default:                System.out.println("未知等级");        }    }}

第二个例子:

package com.company.jiaohuan;public class JH2 {    public static void main(String[] args) {        String name = "chb";//JDK 7 新个性,表达式后果能够是字符串!!!        //字符的实质还是数字!!!        //反编译 java----class(字节码文件)---反编译(IDEA)switch (name){    case "RAP":        System.out.println("RAP");        break;    case "整活":        System.out.println("整活");    default:        System.out.println("妹有啊");}    }}

5.循环构造

  • while循环
while(布尔表达式){    //循环内容}
*   只有布尔表达式为true,循环就会始终执行上来。*   咱们大多数状况是会让循环停止下来的,咱们须要一个让表达式生效的形式来完结循环。*   少部分状况须要循环始终执行,比方服务器的申请响应监听等。*   循环条件始终为true就会造成有限循环【死循环】咱们失常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死解体!
package com.company.whiledemo01;public class Whiledemo1 {    public static void main(String[] args) {        //输入1-100        int i = 0;        while (i < 5201314){            i++;            System.out.println(i);        }    }}

计算1+2+。。+100

public class Whiledemo3{    public static void main(String[] args) {        //计算1+2+。。+100        int i = 0;        int sum = 0;        while (i<=100){            sum = sum + i;            i++;        }        System.out.println(sum);    }}
  • do…while循环

    • 对于while语句而言,如果不满足条件,则不能进入循环。但有时候咱们须要即便不满足条件,也至多执行一次。
  • do…while循环和while循环类似,不同的是,do…while循环至多会执行一次
do{    //代码语句}while(布尔表达式);
  • 应用do…while语句计算1+2+。。+100
package com.company.whiledemo01;public class dowhiledemo1 {    public static void main(String[] args) {        int i = 0 ;        int sum = 0 ;        do{            sum = sum + i;            i++;        }while ((i<=100));        System.out.println(sum);    }}
public class dowhiledemo2{    public static void main(String[] args) {        int a = 0;        while (a<0){            System.out.println(a);            a++;        }        System.out.println("===========");        do{            System.out.println(a);            a++;        }while (a<0);    }
  • while和do…while的区别:
  • while先判断后执行,dowhile是先执行后判断!

    • DO…while总是保障循环领会被至多执行一次!这是他们的次要差异。
  • for循环
  • 在Java5中引入了一种次要用于数组的增强型for循环