一、输出
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秒后关机(真的关机),而我们也可以使用这一设定来戏弄一下朋友!!!
比如:
让他在他的电脑上玩这个猜数字游戏,设置一下,循环执行五次,五次还没猜对就执行关机操作,要是猜对了,啥事没有。(当然,要确保对方没有重要文件正在运行)
(在我们学习字符串之后,还可以用字符串来给我们的好朋友留一条后路,如让他输入“我是猪”,听话输入就取消程序,否则继续执行关机)(别说我教的就行!!!)