Java输入输出

输入输出


1.1 输出到控制台

基本语法

sout(msg); //输出一个字符串,带换行

System.out.print(msg); //输出一个字符串,不带换行

System.out.printf(format,msg); //格式化输出
  • println输出的内容自带 \nprint不带 \n

  • printf 的格式化输出方式和C语言的 printf 是基本一致的

代码示例

System.ouut.println("hello world");



int x = 10;

System.out.println("x = %d\n",x)

格式化字符串

转换符类型举例
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)0*1.9p6
s字符串("%s",100)100
c字符("%c",1)1
b布尔值("%b",100)true
h散列码("%h",100)64
%百分号("%.2f%%",2/7f)0.29%

这个表没必要记住,用到的时候根据需要查一下就ok了


1.2 从键盘输入

使用 Scanner 读取字符串/整数/浮点数

import java.util.Scanner; // 需要导入 util 包



Scanner sc = new Scannee(System.in);

System.out.println("请输入你的姓名:");

String name = sc.nextLine();

System.out.println("请输入你的年龄:");

int age = sc.nextInt();

System.out.println("请输入你的工资:");

floata salary = sc.nextFloat();

System.out.println("你的信息如下:");

System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);

sc.close()l;//注意,要记得调用关闭方法



//执行结果

请输入你的姓名:

张三

请输入你的年龄:

18

请输入你的工资:

1000

你的信息如下:

姓名:张三

年龄:18

工资:1000.0

使用 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

^Z

sum = 150.5

avg = 30.1

注意事项:当循环输入多个数据的时候,使用ctrl + z来结束输入(Windows 上使用ctrl + z,Linux / Mac 上使用ctrl+d )

在后续oj题中,遇到IO类型算法题,有各种循环输入的要求,后续给大家介绍


2.猜数字游戏

游戏规则: 系统自动生成一个随机整数(1-100),然后由用户输入一个猜测的数字,如果输入的数字,如果输入的数字比该随机数小。提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了" .

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.nexInt(100);

// System.out.println("toGuess:"+toGuess);

while (true){

System.out.println("请输入要输入的数字:(1-100)");

int num = sc.nextInt();

if(num < toGuess){

sout("低了");

}else if(num > toGuess){

sout("高了");}

else{

sout("猜对了");

break;

}

}

sc.close();

}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值