输入,选择,while循环

输入,选择,while循环

用户交互Scanner

  • 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是 Java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法:
    scanner s = new Scanner(System.in);

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

import java.util.Scanner;

public class Day622 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);//创建一个扫描器对象,用于接收键盘数据
        System.out.println("使用next方式接收:");
        //判断用户有没有输入字符串
        if(scanner.hasNext()){
            String str= scanner.next();//使用next接收
            System.out.println("输出的内容为:"+str);
        }
         //凡是属于IO流的类,如果不关闭会一直占用资源,要及时关闭
        scanner.close();
    }
}

next():

1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

4、next()不能得到带有空格的字符串。

nextLine():

1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。

2、可以获得空白。


输入整数与小数

import java.util.Scanner;

public class Day62203 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);//扫描输入放置于scanner中
        int i=0;
        float f=0.0f;
        System.out.println("请输入整数:");//别忘
        if(scanner.hasNextInt()){
            i = scanner.nextInt();//前面已经创建i,所以这里的i前面不需要加int
            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();//在创建scanner之后先写,不然容易忘
    }
}

通过循环判断是否还有输入,并在里面对每一次进行求和和统计

public class Day62204 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入");
        //多个数字求和,非数字结束
        double sum=0;
        int m=0;
        //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            m=m+1;
            sum=sum+x;
            System.out.println("你输入了第"+m+"个数据,当前和为"+sum);
        }
        System.out.println("m的个数为"+m);
        System.out.println(m+"个数的和为"+sum);//变量+字符+变量
        System.out.println(m+"个数的平均值为"+(sum/m));
        scanner.close();
    }
}


顺序结构

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

选择结构

if单选择结构

我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示

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

if双选择结构

  • 语法:
    if(布尔表达式){
    //如果布尔表达式的值为true}else{
    //如果布尔表达式的值为false}
public class Day62200 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入");
        String s = scanner.nextLine();
        //判断字符串是否相等
        if (s.equals("Hello")){
            System.out.println(s);
        }//else  //有else则与if2选1,没有则必定输出end
            System.out.println("end");
        scanner.close();
    }
}

if多选择结构

  • 语法:
    if(布尔表达式1){
    //如果布尔表达式1的值为true执行代码

    }else if(布尔表达式2){
    //如果布尔表达式2的值为true执行代码

    }else if(布尔表达式 3){
    1/如果布尔表达式3的值为true执行代码

    }else {
    //如果以上布尔表达式都不为true执行代码)

    }

  • if语句至多有1 个else语句,else 语句在所有的else if 语句之后。

  • if语句可以有若干个 else if语句,它们必须在else语句之前。

  • 一旦其中一个else if 语句检测为true,其他的else if以及else 语句都将跳过执行。

public class Day62201 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scanner.nextInt();
        if(score==100){
            System.out.println("恭喜满分");
        } else if (score>=80&&score<100) {
            System.out.println("优秀");
        }else if (score>=60&&score<80) {
            System.out.println("良好");
        }else if (score>=0&&score<60) {
            System.out.println("不及格");
        } else
            System.out.println("输入错误");
        scanner.close();
    }
}

嵌套的if结构

使用嵌套的if...else语句是合法的。也就是说你可以在另一个if或者else if 语句中使用if 或者else if 语句。你可以像if语句一样嵌套else if...else。

  • 语法:
    if(布尔表达式1){
    //如果布尔表达式1的值为true执行代码

    ​ if(布尔表达式2){
    ​ //如果布尔表达式2的值为true执行代码}
    ​ }

    }


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 : //可选
//语句
}

输入char,通过switch选择

public class Day62203 {
    public static void main(String[] args) {

        Scanner grade = new Scanner(System.in);
        System.out.println("请输入成绩:");

        char g =grade.next().charAt(0) ;//输入char值,其中0代表grade的第一个字符
        switch (g){
            case'A':
                System.out.println("优秀");
                break;
            case'B':
                System.out.println("良好"); break;
            case'C':
                System.out.println("菜"); break;
            default:
                System.out.println("未知量"); break;
        }
        grade.close();
    }
}

switch中string型

public class Day62204 {
    public static void main(String[] args) {
        String name="1";
        switch(name){
            case "青":
                System.out.println("青");
            break;
            case"狂":
                System.out.println("狂");
            break;
            default:
                System.out.println("错误");
        }
    }
}

switch中int型

public static void main(String[] args) {
        int name=1;
        switch(name){
            case 1:
                System.out.println("青");
                break;
            case 2:
                System.out.println("狂");
                break;
            default:
                System.out.println("错误");
        }
    }

循环结构

while循环

  • while是最基本的循环,它的结构为:

    • while(布尔表达式) {
      //循环内容
      }
  • 只要布尔表达式为true,循环就会一直执行下去。

  • 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。

  • 少部分情况需要循环一直执行,比如服务器的请求响应监听等。

  • 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃!

    计算1+2+3+...+100

public class Day622While1 {
    public static void main(String[] args) {
        //计算1+2+3+...+100
        int i=0;
        int sum=0;
        while(i<100){
            i++;
            sum=sum+i;
        }
        System.out.println(sum);
    }
}

do...while循环

  • 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条也至少执行一次。
  • do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。
    • do {
      //代码语句
      }while(布尔表达式);

While和do-While的区别:
while先判断后执行。dowhile是先执行后判断!
Do...while总是保证循环体会被至少执行一次!这是他们的主要差别。

public class Day622DoWhile1 {
    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);//0
    }
}
posted @   新至所向  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示