当前位置: 首页 > news >正文

Java 中的逻辑控制:输入输出

输入输出

1. 控制台输出(3种核心方式)

System.out.println(内容)// 输出后自动换行System.out.print(内容)// 输出后不换行System.out.printf(格式,参数)// 格式化输出(和 C语言 printf 用法一致)

示例:

System.out.println("Hello, Java");System.out.print("请输入: ");System.out.printf("年龄: %d, 体重: %.1fkg",18,62.5);

输出结果:

格式化输出常用的占位符:

占位符类型 / 作用示例输出
%d十进制整数(“数字:%d”, 100);数字:100
%x十六进制整数(小写)(“小写十六进制:%x”, 255);小写十六进制:ff
%X十六进制整数(大写)(“大写十六进制:%X”, 255);大写十六进制:FF
%f浮点数(默认6位小数)(“价格:%.2f”, 9.9);价格:9.90
%s字符串(“姓名:%s”, “张三”);姓名:张三
%c单个字符(“单个字符:%c”, ‘A’)单个字符:A
%%输出百分号占位符(“当前进度:75%%”);当前进度:75%
%b布尔值(小写)(“布尔结果:%b”, 10 > 5);布尔结果:true
%B布尔值(大写)(“大写布尔:%B”, 1 == 2);大写布尔:FALSE
%e科学计数法(“科学计数法:%e”, 1234567.89);科学计数法:1.234568e+06

2. 控制台输入(核心用Scanner类)

Java 控制台输入必须先导入java.util.Scanner工具类,通过它读取用户输入的不同类型数据,以下是语法:

importjava.util.Scanner;// 导入Scanner类// 创建Scanner对象, 绑定标准输入流(键盘)// Scanner 对象名 = new Scanner(System.in);Scannerscan=newScanner(System.in);// 具体所需的输入内容// 数据类型 变量名 = 对象名.输出类型();intage=scan.nextInt();// 关闭输入调用, 释放系统输入资源// 对象名.close();scan.close();

2.1 基础类型匹配

以下是常用用法:
Scanner为每种基础数据类型提供了专属的读取方法,输入内容必须符合对应类型的格式规范,否则会抛出InputMismatchException异常:

目标数据类型对应读取方法
intnextInt()
doublenextDouble()
booleannextBoolean()
String 字符串next()
String 整行文本nextLine()

2.2 常用用法

  1. 单组输入
importjava.util.Scanner;// 导入Scanner类publicstaticvoidmain(String[]args){// 创建Scanner对象, 绑定标准输入流(键盘)Scannerscan=newScanner(System.in);System.out.print("请输入姓名: ");Stringname=scan.nextLine();// 读取一整行字符串(包含空格)System.out.print("请输入年龄: ");intage=scan.nextInt();// 读取整数System.out.print("请输入工资/月: ");doublesalary=scan.nextDouble();// 读取浮点数// 输出结果System.out.printf("姓名: %s, 年龄: %d, 工资: %.1f%n",name,age,salary);scan.close();// 必须调用, 释放资源}

输出结果:

  1. 多组输入
    如果需要批量读取数据,用hasNextXxx()has对应读取类型)方法判断是否还有输入:
    采用while循环语句进行不断循环
// 计算输入整数的和importjava.util.Scanner;publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);intsum=0;intcount=0;// 循环读取整数, 直到用户输入非整数或结束while(scanner.hasNextInt()){intnum=scanner.nextInt();sum+=num;count++;}System.out.printf("共输入%d个数, 总和: %d%n",count,sum);scanner.close();}

输出结果:

注意: 连续输入 使用Ctrl + z或者Ctrl + d强制结束输入,或者输入非 hasNextXxx()非 has对应读取类型)结束输入

2.3 常见的匹配错误

nextInt()nextDouble()这类数值读取方法,只会读取数值本身,不会把输入完数值后按下的回车换行符自动去掉
如果接着调用nextLine(),它会直接读取换行符为输入内容,最终得到空字符串,跳过预期的字符串输入步骤

错误示例:

importjava.util.Scanner;publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.print("请输入您的年龄: ");intage=scanner.nextInt();System.out.print("请输入您的姓名: ");Stringname=scanner.nextLine();// 这里直接读到换行符, name变成空字符串scanner.close();}

输出结果:

解决方法:再调用一次scanner.nextLine();即可

importjava.util.Scanner;publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.print("请输入您的年龄: ");intage=scanner.nextInt();// 读取回车scanner.nextLine();// 清空缓冲区的换行符System.out.print("请输入您的姓名: ");Stringname=scanner.nextLine();// 现在可以正常读取带空格的 name 了scanner.close();}

输出结果:

2.4 其他注意事项

  1. 所有nextXxx()数值方法都会自动忽略输入前的空格、制表符,只读取有效数值部分
  2. Scanner使用完毕后记得调用对象名.close()关闭,释放系统输入资源,养成良好的编码习惯
http://www.jsqmd.com/news/1213395/

相关文章:

  • 积家中国官方售后服务中心|服务热线及官方维修地址权威信息公告(2026年7月最新) - 积家官方售后服务中心
  • 基于MSP430F67791A的三相电表校准:从原理到工程实践
  • Three.js 飞线效果教程
  • 2026玻璃机械客户认可吗 口碑推荐零套路价格透明 - mypinpai
  • 从技术视角拆解优质青春剧创作:真实感构建与叙事框架创新
  • 亨得利苏州直营售后中心指南|最新网点地址及官方热线公示(2026年7月最新) - 亨得利中国服务中心
  • Android网络请求实战:OkHttp与Retrofit黄金组合
  • Python办公自动化实战:Excel/Word/PDF高效处理
  • RPG Maker MV/MZ资源解密终极指南:5分钟解锁游戏素材的完整解决方案
  • 超低温干货|文献全梳理:R134a/R23 单机自复叠最优配比 + 全套实操注意事项
  • 深入解析TI EDMA控制器:三维传输、PaRAM与高效数据搬运实践
  • 网盘直链下载助手完整指南:九大平台一键获取真实下载地址
  • 【MyBatis-Plus】源码级吃透 MyBatis 与 MyBatis-Plus:两阶段架构、插件机制与底层增强全解析
  • 采购岗位可以考什么证书 - 众智商学院职业教育
  • 使用QEMU搭建ARM开发环境完整指南
  • 亨得利福州区官方维保核验指南|全网正规售后信息权威更新(2026年7月最新) - 亨得利中国服务中心
  • 重庆能源工业技师学院 - 学习招生
  • DFT笔记79
  • 别踩2026年做培训视频总结的常见成本误区,过来人分享实操经验
  • 2026岳阳制冷设备冷库空气能回收公司TOP5测评 - LYL仔仔
  • Cursor写测试用例实战手册(从Chat界面到CI通过的完整链路)
  • 浪琴中国区官方售后服务中心|官网认证地址及电话全新启用(2026年7月最新) - 浪琴中国服务中心
  • Java开发中避免数组越界与空指针异常的实战指南
  • 南京西路梧桐树下的“时光守望”:百年亨得利,镌刻上海海派风华的岁月长歌 - 亨得利官方维修中心
  • LVDS/CSI-2数据流控制:链路列表与FIFO阈值配置实战
  • 西安正规黄金回收门店测评:收的顶资质优势 + 详细地址一览400-867-6661(24小时在线) - 日常比对手册
  • 浪琴重庆官方售后服务中心|官方门店地址及客服电话全新公告(2026年7月最新) - 浪琴中国服务中心
  • 深入解析Windows蓝屏模拟器:从原理到实践的完整开发指南
  • 亨得利重庆维保网点资质攻略|官方公示正规维修服务渠道(2026年7月最新) - 亨得利中国服务中心
  • 浪琴中国区官方售后服务中心|官方网站权威公告(2026年7月最新) - 浪琴中国服务中心