Bootstrap

Java的输出与输入— + —数字炸弹实现

目录

前言

 一、输出

1.System.out.print ( );

2.System.out.println ( );

3.System.out.printf ( );

二、输入

三、实例应用:数字炸弹 

 总结


前言

        在编程的学习和我们的实际应用中,我们经常需要向计算机输入指令并即时收到程序反馈的运行信息。在这个过程中,输入和输出操作非常重要。下面简单介绍一些输入和输出的方式,以及实例中的应用。


 一、输出

java中可以使用System.out进行输出操作,在实际的操作中有如下这几种方式:

1.System.out.print ( );

        输出字符串或其他类型的值,不会自动换行。

System.out.print("Hello");
System.out.print("World");

        运行结果: 

 


2.System.out.println ( );

        println相当于在print的语句末尾加上了\n,可以自动换行。

System.out.print("Hello\n");
System.out.print("World\n");
System.out.println("\n--------\n");
System.out.println("Hello");
System.out.println("World");

使用print ( ) 和println ( ) 进行输出时,可以使用 + 将字符串与变量拼接成一个新的完整的字符串

int year = 1953;
String name = "SUBARU";
System.out.println(name + "成立于" + year);


3.System.out.printf ( );

        与C语言中的printf基本一致,使用格式化字符串输出格式化的字符串或其他类型的值。

例: 

int a = 10;
float b = 4;
float c = a / b;
System.out.printf("%d / %.1f = %.2f",a,b,c);

在格式化输入中需要注意不同数据类型所对应的转换符

对应表
类型符号举例结果
十进制整数%d
("%d", 100)
100
十六进制整数%x
("%x", 100)
64
八进制整数%o
("%o", 100)
144
定点浮点数%f
("%f", 100f)
100.000000
质数浮点数%e
("%e", 100f)
1.000000e+02
通用浮点数%g
("%g", 100f)
100.000
十六进制浮点数%a
("%a", 100)
0x1.9p6
字符串%s
("%s", 100)
100
字符%c
("%c", ‘1’)
1
布尔值%b
("%b", 100)
true
散列码%h
("%h", 100)
64
百分号%%
("%.2f%%", 5/2f)
2.50%

二、输入

 输入需要用到Scanner,在使用Scanner进行输入操作前,首先要在文件头部导入util包;

importjava.util.Scanner; 

 Scanner使用方式如下:

Scanner scanner = new Scanner(System.in);
//创建一个 Scanner 对象以从控制台读取输入
System.out.println("输入名称");
String str = scanner.nextLine();
//nextLine()方法用于读取输入的一行作为字符串
System.out.println("输入年份");
int year = scanner.nextInt();
//nextInt()方法用于读取输入的下一个整数
System.out.println(str + year);

运行结果:

 在Scanner输入中需要特别注意的是,当使用 nextInt( ) 方法输入整数后按下回车键,接下来调用 nextLine( ) 方法时会读取到一个空字符串。这是因为nextInt( )只会读取整数部分,而不包括换行符。

例:

Scanner scanner = new Scanner(System.in);
System.out.println("输入数字");
int num = scanner.nextInt();
System.out.println("输入字符");
String str = scanner.nextLine();

此时当输入数字按下回车(Enter)键进行换行操作时,nextLine( ) 会直接接收换行符,而无法正确输入:

解决方法:

        在调用 nextLine ( ) 之前添加一个额外的scanner.nextLine( ) 语句来消耗掉多余的换行符,以确保能够正确读取输入的名称。

Scanner scanner = new Scanner(System.in);
System.out.println("输入数字");
int num = scanner.nextInt();
scanner.nextLine(); //接收换行符
System.out.println("输入字符");
String str = scanner.nextLine();

现在就可以正常输入了:


三、实例应用:数字炸弹 

游戏规则:
        系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字m比该随机数小, 系统提示后续输入m 的范围为(m~100), 如果输入的数字比该随机数大, 提示 后续输入m 的范围为(1~m) , 如果十次以内输入的数字和随机数相等, 则提示 "炸弹爆炸" ;若十次后仍未猜中数字m则提示 "恭喜通关"

 具体实现:

import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Random random = new Random(); // 随机数字生成器(此方法依据系统时间生成数字)
        Scanner sc = new Scanner(System.in);
        int toGuess = random.nextInt(101);// 在0~100之间生成一个随机数
        System.out.println("请输入数字: (1~100)");
        for (int i = 0; i < 10; i++) {
            if (i == 9){
                System.out.println("最后一次");// 当输入9次后提示
            }
            int m = sc.nextInt();
            if (m < toGuess) {
                System.out.println(m + "~100");
            } else if (m > toGuess) {
                System.out.println("1~" + m);
            } else {
                System.out.println("炸弹爆炸");
                break;// 炸弹爆炸,游戏结束
            }
        }
        System.out.println("恭喜通关");
        sc.close();// 结束sc输入
    }
}

 总结

         输入和输出在Java程序中至关重要。通过输入,程序可以接收用户的指令和数据,满足用户需求。通过输出,程序可以向用户展示结果和信息,提供更好的交互体验。输入和输出还用于数据传递、调试和错误诊断,以及持久化数据到存储设备,实现数据长期保存。此外,输入和输出支持与其他系统的集成,实现数据交流和通信。总之,输入和输出是程序功能实现的基础,对用户交互、数据传递、调试和错误诊断、数据持久化以及系统集成具有重要意义。

;