系统输出使用的是System.out对象
系统输入使用的是System.in对象
1.java中的输出
对于一台电脑而言,标准的输出设备就是显示器(对于程序而言就是控制台),标准的输入设备就是键盘(对于程序而言默认也是从键盘输入)
System.out一共可以使用三种输出方式
print(传入任意数据);//不带换行,()内部必须要传入一个数据,不能为空。
println(传入任意数据);//输出数据后自动换行,()可以为空,Java中经常使用空的println()来换行。
printf();//与c语言用法一致
System.out.print(1+" ");
System.out.print(1.5+" ");
System.out.print(true+" ");
//为空的println就是换行
System.out.println();
System.out.print("test");
System.out.printf("年龄为: %d,姓名为: %s,工资为: %f\n",18,"李",100.5);
2.Java系统输入
System.in-->每次只能读入一个字符
JDK1.2之后引入了Scanner类
使用:
Scanner sc=new Scanner(System.in);//标准代码,产生sc的对象
nextxxx()//要获取的类型
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
String name=sc.nextLine();
System.out.println("请输入年龄:");
int age=sc.nextInt();
System.out.println("请输入工资:");
double sal=sc.nextDouble();
nextLine这个方法默认以回车作为输入的结果,只识别回车
若先输入一个整数,nextLine-->按下回车,然后调用nextLine方法想要获取一个字符串,这个字符串拿不到
解决方案:在某些数据输入后,在真正想获取的字符串之前,再调用一次nextLine()
当需要多次读取同种类型的数据,使用while循环
1.获取Scanner对象
2.使用while循环,搭配hasNextxxx()方法,检测程序输入是否为指定类型的内容,若输入内容和判断内容不一致,循环退出。
Scanner s=new Scanner(System.in);
int count=0;
int sum=0;
while(s.hasNextInt()){
System.out.println("请输入数字:");
int tmp=s.nextInt();
count++;
sum+=tmp;
}
double avg=sum/count*1.0;
System.out.println(avg);
补充:
随机数的产生:
1.产生Random类对象
2.调用Random对象的nextLine方法
Random random=new Random();
//[0,100)
int num= random.nextInt(100);
//[20,100)
int a=random.nextInt(80)+20;