欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA代码练习基础语法部分—数据输入、case穿透现象、random

程序员文章站 2022-06-26 07:54:23
...

案例1(数据输入)

需求:一个寺庙住着三个和尚,他们的身高必须经过测量得出(键盘输入),请用程序实现获取这三个和尚的最高身高

package fundemental;

import java.util.Scanner;

public class demo001_Scanner {
    /*
    案例:三个和尚
    需求:
        一座寺庙里住着三个和尚,他们的身高必须经过测量得出(键盘输入),请用程序实现获取这三个和尚的最高身高
    */
    public static void main(String[] args) {
        //身高未知,采用键盘录入实现,首先导包,然后创建对象
        Scanner sc = new Scanner(System.in);

        //键盘录入三个身高分别赋值给三个变量
        System.out.println("请输入第一个和尚的身高");
        int height1 = sc.nextInt();
        System.out.println("请输入第二个和尚的身高");
        int height2 = sc.nextInt();
        System.out.println("请输入第三个和尚的身高");
        int height3 = sc.nextInt();
        // 使用三元运算符获取三个和尚的最高身高
        int temp_height = height1 > height2 ? height1 : height2;
        int max_height = temp_height > height3 ? temp_height : height3;
        System.out.println("最高的身高是:" + max_height);
    }

}

总结:

这个简单的题主要有两个知识点:一是用户交互的Scanner,另外一个是三元运算符

  • 用户交互Scanner

    • next() 与 nextLine() 区别

      next():

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

      nextLine():

      • 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
      • 可以获得空白。
    • 总而言之用nextline就对了(用下面的就对了)

    • import java.util.Scanner;
      public class For_test {
          public static void main(String[] args) {
              Scanner sc = new Scanner(System.in);
              //下面其实就是while判断缓冲区里面还有没有有效的数据
              //就是说当按下enter键的时候开始判断缓冲区有没有数据,只要有数据就不断地执行循环里的语句
              //当循环里的语句执行完毕以后,接着进行while语句里面的循环,等待数据输入
              while (sc.hasNextLine()) {
                  System.out.println(sc.nextLine());
              }
          }
      }
      

案例2(case穿透)

需求:一年有12个月,分属于春夏秋冬四个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。

package fundemental;
import java.util.Scanner;

public class demo002_case {
    public static void main(String[] args) {
        /*
        * 案例:春夏秋冬
        * 需求:一年有12个月,分属于春夏秋冬四个季节
        * 键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出
        * 要点:case穿透
        * */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份");
        while(sc.hasNextInt()){
            int month = sc.nextInt();
            switch (month){
                // 所谓的case穿透现象就是下面的程序
                //如果一直没有break,程序会一直往下case执行,每个case的里面的程序都会执行
                //直到在一个case里面遇到了break才会跳出来。
                case 1:
                case 2:
                case 12:
                    System.out.println("winter");
                    break;
                case 3:
                case 4:
                case 5:
                    System.out.println("spring");
                    break;
                case 6:
                case 7:
                case 8:
                    System.out.println("summer");
                    break;
                case 9:
                case 10:
                case 11:
                    System.out.println("autumn");
                    break;
                default:
                    System.out.println("你输入的月份有误");
            }
        }

    }
}

总结:case这个其实也很简单,但是需要注意的就是case和break的结合使用的情况。

  • 如果case匹配上以后,不停的执行case里面的程序,如果遇不到break是不会跳出来的,直接穿透进入匹配后的下一个case里面。

案例3(random)

这个案例主要是注意一下random.nextInt的方法

还有一个深刻的体会就是java基本都是类,一般都是先new出来一个要使用的类,再进行这个类的方法的调用。

package fundemental;

import java.sql.PseudoColumnUsage;
import java.util.Scanner;
import java.util.Random;
 /*
  案例:使用Random的猜数字的小游戏
  */

public class demo003_random {
    public static void main(String[] args) {
        Random random_number = new Random();
        int number = random_number.nextInt(100) + 1;
        Scanner sc = new Scanner(System.in);
        System.out.println("请猜出一个数字");
        while(sc.hasNextInt()){
            int guess_number = sc.nextInt();
            if (guess_number > number){
                System.out.println("你猜的数字大了");
            }
            else if(guess_number<number){
                System.out.println("你猜的数字小了");
            }
            else {
                System.out.println("这次你猜对了");
                break;
            }
        }
    }

}
相关标签: JAVA学习