Java流程控制01(狂神说Java)

一、Scanner对象

基本语法:

 Scanner scanner = new Scanner(System.in);

用法示例:

package com.wei.scanner;

import java.util.Scanner;

public class Demo06 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接收键盘数据  Alt+enter 自动补全   new一个对象
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收: ");
        //判断用户有没有输入字符串
        if (scanner.hasNext()==true){
            //使用next方式接收
            String str = scanner.next();  //程序会等待用户输入完毕
            System.out.println("输出内容为:"+str);
        }
        //凡是属于IO流的类如果不关闭会一直占用资源,要养成良好习惯用完就关掉
        //IO流是输入输出流 和电脑打交道的
        scanner.close();
    }
}

next()与nextLine()的区别:

  • next()对输入有效字符之前遇到的空白会自动过滤掉,nextLine()不会。
  • next()对输入有效字符之后遇到的空白或特殊字符会自动结束输入,nextLine()返回回车之前的所有字符

判断输入是否为整数示例:

package com.wei.scanner;
import java.util.Scanner;
public class Demo04 {
    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.wei.scanner;
import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
        Scanner scanner = new Scanner(System.in);
        //
        double sum = 0;
        //计算输入了多少个数字
        int m = 0;
        System.out.println("请输入数据");
        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        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();
    }
}

二、if选择结构

单结构选择:

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

双选择结构:

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

多选择结构:

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

示例:

package com.wei.struct;
import java.util.Scanner;
public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        /*
        if语句至多有一个else语句,else语句在所有else if语句之后
        if语句可以有多个else if语句,必须在else语句之前
        一旦其中一个else if 语句检测为true,其他的else if及else语句跳过执行
         */
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        //if多选择结构
        if (score == 100 ){
            System.out.println("恭喜满分");
        }else if (score<100&&score>=85){
            System.out.println("A");
        }else if (score<85&&score>=60){
            System.out.println("B");
        }else if (score<60&&score>=0){
            System.out.println("不及格");
        }else{
            System.out.println("输入成绩不合法");
        }
        scanner.close();
    }
}

嵌套的if选择结构:

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

示例:

import java.util.Scanner;
public class IfDemo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        double score = scanner.nextDouble();
        //嵌套的if结构
        if (score>=50&&score<=100){
            if  (score>=50&&score<=75) {
                System.out.println("数字在50到75之间");
            }else{
                System.out.println("数字在50到100之间");
            }
        }else if (score>=0&&score<50){
            if  (score>0&&score<=25) {
                System.out.println("数字在0到25之间");
            }else{
                System.out.println("数字在25到50之间");
            }
        }
        scanner.close();
    }
}

三、Switch多选择结构

Switch选择语法:

switch (expression){
           case value :
               break;//可选 跳出循环 不写会穿透
           case value :
               break;//可选
           //可以有任意数量的case语句
           default: //可选
               //语句

示例:

public class SwitchDemo02 {
    public static void main(String[] args) {
        String sex = "男";
        //JDK7的新特性,表达式结果可以是字符串!!!   字符串比较的是哈希值是否一致
        //反编译   Java---class(字节码文件)----反编译(IDEA)
        switch (sex){
            case "男":
                System.out.println("男");
                break;
            case "女":
                System.out.println("女");
                break;
            default:
                System.out.println("中立");
        }
    }
}

 

posted @ 2022-08-22 19:28  asds-lml  阅读(15)  评论(0编辑  收藏  举报