乐趣区

关于java:赶紧收藏这些Java中的流程控制知识你都不知道你凭什么涨薪

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 循环
退出移动版