零基础学Java第五讲---输入输出

发布于:2025-08-12 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、输出

1、输出到控制台

基本语法:

System.out.println(msg);            // 输出⼀个字符串, 带换⾏ 
System.out.print(msg);              // 输出⼀个字符串, 不带换⾏ 
System.out.printf(format, msg);     // 格式化输出           

        println输出的内容自带\n, print 不带\n

        printf的格式化输出方式和C语言的代码示例printf是基本⼀致的.

代码示例

 System.out.println("hello world");
 int x = 10;
 System.out.printf("x = %d\n", x)

格式化字符串

        这个表格没必要记住,用到的时候根据需要查⼀下就行了

二、输入

1、从键盘输入

        使用Scanner读取字符串/整数/浮点数,使用时需要导入该类(该过程为导包,后续会讲到)

import java.util.Scanner;  // 需要导⼊util包
 
Scanner sc = new Scanner(System.in);
System.out.println("请输⼊你的姓名:");
String name = sc.nextLine();
System.out.println("请输⼊你的年龄:");
int age = sc.nextInt();
System.out.println("请输⼊你的⼯资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"⼯资:"+salary);
sc.close(); // 注意, 要记得调⽤关闭⽅法
 
// 
执⾏结果 
请输⼊你的姓名:
张三
请输⼊你的年龄:
18
请输⼊你的⼯资:
1000
你的信息如下:
姓名: 张三
年龄:18
⼯资:1000.0

2、处理多组输⼊

示例:使用Scanner循环读取N个数字,并求取其平均值

 Scanner sc = new Scanner(System.in);

 int sum = 0;
 int num = 0;

 while (sc.hasNextInt()) {
     int tmp = sc.nextInt();
     sum += tmp;
     num++;
 }

 System.out.println("sum = " + sum);
 System.out.println("avg = " + sum / num);
 sc.close();

 //  执⾏结果 
 10
 40.0
 50.5
 ^d
 sum = 150.5
 avg = 30.1

#注:当循环输入多个数据的时候,使用ctrl+z来结束输入(Windows上的CMD中使用ctrl+z,Linux/ Mac/IDEA的控制台上使用ctrl+d).在后续oj题当中,遇到IO类型的算法题,有各种循环输入的要 求,后续给⼤家介绍。

3、猜数字游戏

        游戏规则: 系统自动生成⼀个随机整数(1-100),然后由用户输入⼀个猜测的数字.如果输入的数字比该随机数小, 提示"低了",如果输入的数字比该随机数大,提示"高了",如果输入的数字和随机数相等,则提示"猜对了".

        首先,我们需要先了解如何生成随机数。

3.1生成随机数

        生成随机数要用到random()方法。

// 生成0.0到1.0之间的随机double值
double random = Math.random();

// 生成0到99之间的随机整数
int randomInt = (int)(Math.random() * 100);

// 生成1到100之间的随机整数
int randomInRange = (int)(Math.random() * 100) + 1;

        我们的猜数字游戏需要指定范围,范围随机数公式为:

(最小值 + Math.random()*(最大值 - 最小值 + 1))

        这里所得到的就是[最小值,最大值]

import java.util.Random;

Random rand = new Random();

// 生成随机整数
int randomInt = rand.nextInt();

// 生成0到99之间的随机整数
int randomBound = rand.nextInt(100);

// 生成1到100之间的随机整数
int randomRange = rand.nextInt(100) + 1;

// 生成随机boolean值
boolean randomBoolean = rand.nextBoolean();

// 生成随机double值(0.0-1.0)
double randomDouble = rand.nextDouble();

// 生成随机long值
long randomLong = rand.nextLong();

        这样我们就可以开始敲代码啦!!!

import java.util.Random;
import java.util.Scanner;
class Test {
    public static void main(String[] args) {
        Random random = new Random(); 
        Scanner sc = new Scanner(System.in);
        int toGuess = random.nextInt(100) + 1;
        while (true) {
            System.out.println("请输⼊要输⼊的数字: (1-100)");
            int num = sc.nextInt();
            if (num < toGuess) {
                System.out.println("猜低了");
            } else if (num > toGuess) {
                System.out.println("猜⾼了");
            } else {
                System.out.println("猜对了");
                System.out.println("toGuess: " + toGuess);
                System.out.println(" 请选择:1.开始新的游戏  2.退出游戏" );
                int select = sc.nextInt();
                switch(select){
                    case 1:
                        continue;
                    case 2:
                        System.out.println("游戏结束" );
                        break;
                    default:
                        System.out.println("输入错误,游戏结束" );
                        break;
                }                        
            }
            break;
        }
        sc.close();
    }
}

3.2拓展:关机程序

        在我们的系统上面有自定义的关机程序

        shutdown -s -t(注意空格)
        shutdown用来关机的的名字,-s设计关机,-t 设置时间,-a取消关机。

system("shutdown -s -t 60");

        这里执行后会显示电脑将在60秒后关机(真的关机),而我们也可以使用这一设定来戏弄一下朋友!!!

比如:

                让他在他的电脑上玩这个猜数字游戏,设置一下,循环执行五次,五次还没猜对就执行关机操作,要是猜对了,啥事没有。(当然,要确保对方没有重要文件正在运行)

        (在我们学习字符串之后,还可以用字符串来给我们的好朋友留一条后路,如让他输入“我是猪”,听话输入就取消程序,否则继续执行关机)(别说我教的就行!!!)


网站公告

今日签到

点亮在社区的每一天
去签到