目录
前言
在编程的学习和我们的实际应用中,我们经常需要向计算机输入指令并即时收到程序反馈的运行信息。在这个过程中,输入和输出操作非常重要。下面简单介绍一些输入和输出的方式,以及实例中的应用。
一、输出
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();
现在就可以正常输入了:
三、实例应用:数字炸弹
具体实现:
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程序中至关重要。通过输入,程序可以接收用户的指令和数据,满足用户需求。通过输出,程序可以向用户展示结果和信息,提供更好的交互体验。输入和输出还用于数据传递、调试和错误诊断,以及持久化数据到存储设备,实现数据长期保存。此外,输入和输出支持与其他系统的集成,实现数据交流和通信。总之,输入和输出是程序功能实现的基础,对用户交互、数据传递、调试和错误诊断、数据持久化以及系统集成具有重要意义。