输入输出
输出到控制台
基本语法
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);
从键盘输入
读入一个字符
直接使用 System.in.read 可以读入一个字符,但那是需要搭配异常处理。
System.out.print("Enter a Char:");
char i = (char)System.in.read();
System.out.println("your char is :"+i);
// 编译出错
Test.java:4: 错误: 未报告的异常错误IOException; 必须对其进行捕获或声明以便抛出
char i = (char) System.in.read();
^
1 个错误
正确写法
import java.io.IOException; // 需要导入 IOException 包
try {
System.out.print("Enter a Char:");
char i = (char) System.in.read();
System.out.println("your char is :"+i);
} catch (IOException e) {
System.out.println("exception");
}
这种方法较为麻烦,我们不推荐。
使用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
*/
使用Scanner循环读取N个数字
Scanner sc = new Scanner(System.in);
double sum = 0.0;
int num = 0;
while(sc.hasNextDouble()){
double tmp = sc.nextDouble();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
//执行结果
10
40.0
50.5
^z
sum = 150.5
avg = 30.1
猜数字游戏
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);
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("猜对了");
break;
}
}
sc.close();
}
}