新闻详情

新闻详情

首页 / 资讯中心 / 详情

第04课-控制台输入输出

发布时间:2026/9/6 13:15:12来源:尧图网络
第04课-控制台输入输出
第04课控制台输入输出本课目标掌握Java控制台输出println、printf和使用Scanner类进行用户输入。一、概念讲解1.1 输出方法┌────────────────────────────────────────────┐ │ System.out 输出方法 │ ├────────────────────────────────────────────┤ │ println() - 输出后换行 │ │ print() - 输出后不换行 │ │ printf() - 格式化输出C语言风格 │ └────────────────────────────────────────────┘1.2 输入流程┌──────────┐ 读取数据 ┌──────────┐ │ 用户输入 │ ──────────→ │ Scanner │ │ (键盘) │ │ 对象 │ └──────────┘ └────┬─────┘ │ ┌───────────┴───────────┐ │ 调用对应方法获取数据 │ │ nextInt() │ │ nextDouble() │ │ nextLine() │ │ next() │ └───────────────────────┘1.3 printf格式说明符格式符说明示例%d整数printf(“%d”, 10) → 10%f浮点数printf(“%f”, 3.14) → 3.140000%s字符串printf(“%s”, “hello”) → hello%c字符printf(“%c”, ‘A’) → A%n平台相关换行跨平台换行符%%输出%本身printf(“100%%”) → 100%1.4 printf精度控制// 保留2位小数printf(%.2f,3.14159)// → 3.14// 宽度控制printf(%10d,42)// → 42右对齐占10位printf(%-10d,42)// → 42 左对齐二、语法格式2.1 Scanner使用步骤// 第1步导入Scanner类importjava.util.Scanner;// 第2步创建Scanner对象ScannerscannernewScanner(System.in);// 第3步读取输入intnumscanner.nextInt();// 读取整数doubledscanner.nextDouble();// 读取浮点数Stringstrscanner.nextLine();// 读取一整行Stringwordscanner.next();// 读取一个单词// 第4步关闭Scanner可选但建议scanner.close();2.2 输出方法对比System.out.println(Hello);// 输出Hello并换行System.out.print(Hello);// 输出Hello不换行System.out.print(World);// 接着输出World// 结果HelloWorld在同一行// printf格式化System.out.printf(姓名: %s, 年龄: %d%n,张三,25);三、代码案例案例1用户信息输入importjava.util.Scanner;publicclassUserInfo{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);System.out.println( 用户信息采集 \n);// 输入姓名System.out.print(请输入您的姓名: );Stringnamescanner.nextLine();// 输入年龄System.out.print(请输入您的年龄: );intagescanner.nextInt();// 输入身高System.out.print(请输入您的身高(米): );doubleheightscanner.nextDouble();// 输入性别System.out.print(请输入您的性别(男/女): );Stringgenderscanner.next();// 输出信息System.out.println(\n 您的信息 );System.out.println(姓名: name);System.out.println(年龄: age岁);System.out.println(身高: height米);System.out.println(性别: gender);// 使用printf格式化输出System.out.println(\n 格式化输出 );System.out.printf(姓名: %s%n,name);System.out.printf(年龄: %d岁%n,age);System.out.printf(身高: %.2f米%n,height);System.out.printf(性别: %s%n,gender);scanner.close();}}案例2简易计算器importjava.util.Scanner;publicclassSimpleCalculator{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);System.out.println( 简易计算器 \n);// 输入两个数System.out.print(请输入第一个数: );doublenum1scanner.nextDouble();System.out.print(请输入第二个数: );doublenum2scanner.nextDouble();// 计算并输出结果System.out.println(\n 计算结果 );System.out.printf(%.2f %.2f %.2f%n,num1,num2,num1num2);System.out.printf(%.2f - %.2f %.2f%n,num1,num2,num1-num2);System.out.printf(%.2f × %.2f %.2f%n,num1,num2,num1*num2);if(num2!0){System.out.printf(%.2f ÷ %.2f %.2f%n,num1,num2,num1/num2);System.out.printf(%.2f %% %.2f %.2f%n,num1,num2,num1%num2);}else{System.out.println(除数不能为0);}scanner.close();}}案例3成绩录入系统importjava.util.Scanner;publicclassGradeSystem{publicstaticvoidmain(String[]args){ScannerscannernewScanner(System.in);System.out.println( 成绩录入系统 \n);// 输入学生信息System.out.print(请输入学生姓名: );Stringnamescanner.nextLine();System.out.print(请输入语文成绩: );doublechinesescanner.nextDouble();System.out.print(请输入数学成绩: );doublemathscanner.nextDouble();System.out.print(请输入英语成绩: );doubleenglishscanner.nextDouble();// 计算doubletotalchinesemathenglish;doubleaveragetotal/3;// 确定等级Stringlevel;if(average90){level优秀;}elseif(average80){level良好;}elseif(average70){level中等;}elseif(average60){level及格;}else{level不及格;}// 输出报告System.out.println(\n 成绩报告 );System.out.printf(学生: %s%n,name);System.out.printf(语文: %.1f 分%n,chinese);System.out.printf(数学: %.1f 分%n,math);System.out.printf(英语: %.1f 分%n,english);System.out.printf(总分: %.1f 分%n,total);System.out.printf(平均: %.1f 分%n,average);System.out.printf(等级: %s%n,level);scanner.close();}}四、常见错误错误1Scanner缓冲区问题importjava.util.Scanner;// 错误示例nextInt()后直接用nextLine()ScannerscannernewScanner(System.in);System.out.print(请输入年龄: );intagescanner.nextInt();// 读取整数回车留在缓冲区System.out.print(请输入姓名: );Stringnamescanner.nextLine();// 读取了回车得到空字符串System.out.println(姓名: name);// 输出空// 正确写法1在nextInt()后加一个nextLine()消耗回车scanner.nextInt();// 读取整数scanner.nextLine();// 消耗回车Stringnamescanner.nextLine();// 现在能正确读取// 正确写法2全部使用nextLine()手动解析StringageStrscanner.nextLine();intageInteger.parseInt(ageStr);错误2输入类型不匹配ScannerscannernewScanner(System.in);System.out.print(请输入一个整数: );// 如果用户输入 abcintnumscanner.nextInt();// InputMismatchException!// 正确做法先检查if(scanner.hasNextInt()){intnumscanner.nextInt();}else{System.out.println(输入的不是整数);scanner.next();// 消耗无效输入}错误3忘记关闭Scanner// 不推荐ScannerscannernewScanner(System.in);// ... 使用scanner// 忘记关闭// 推荐写法ScannerscannernewScanner(System.in);try{// ... 使用scanner}finally{scanner.close();}// 或者在程序结束时关闭scanner.close();五、课后练习练习1基础编写程序输入圆的半径输出圆的面积和周长。要求使用printf保留2位小数。练习2进阶编写程序输入秒数将其转换为小时:分钟:秒的格式。例如输入3661输出1:1:1。练习3思考题编写程序输入一个四位数输出其千位、百位、十位、个位数字以及各位数字之和。六、本课小结知识点要点println()输出内容并换行print()输出内容不换行printf()格式化输出%d整数、%f浮点、%s字符串、%c字符、%n换行Scanner输入类使用前需importnextInt()读取整数nextDouble()读取浮点数nextLine()读取一整行next()读取一个单词常见陷阱nextInt()后要用nextLine()消耗回车本课程持续更新中欢迎关注
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

DIN TS 70121-2024标准PDF高效阅读与整理指南 2026/9/6 14:00:18

DIN TS 70121-2024标准PDF高效阅读与整理指南

简介:一份面向电动汽车充电设施研发、测试及标准研究人员的专业参考资料,内容为DIN TS 70121-2024英文原版标准,用于规范电动汽车与直流充电站之间基于CCS联合充电系统的数字通信,重点涵盖应用层消息描述、握手版本协商、服务发现…

阅读更多 →
智慧校园网络架构:从VLAN规划到安全实施的关键要点 2026/9/6 14:00:18

智慧校园网络架构:从VLAN规划到安全实施的关键要点

简介:智慧校园网络架构是高校信息化建设的核心议题。这份演示文稿以全国多所重点高校的校园网真实组网为案例,按核心层、汇聚层、接入层的分层思路,系统梳理了清华大学美术学院、北京航空航天大学、北京交通大学、上海同济大学、上海大学、中…

阅读更多 →
量子计算为何比超算快1亿亿倍:从量子叠加与并行性解析 2026/9/6 14:00:18

量子计算为何比超算快1亿亿倍:从量子叠加与并行性解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Linux驱动工程师:高薪背后的内核态、字符设备与学习路径 2026/9/6 14:00:18

Linux驱动工程师:高薪背后的内核态、字符设备与学习路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CRT滤镜技术解析:为《死亡之屋1》打造阴森复古视觉体验 2026/9/6 14:00:18

CRT滤镜技术解析:为《死亡之屋1》打造阴森复古视觉体验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于OpenCV的舞蹈视频动作识别与场景分析技术实践 2026/9/6 13:57:18

基于OpenCV的舞蹈视频动作识别与场景分析技术实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞