拓冰建站拓冰建站
首页 / 资讯中心 / 正文

【java】输出输入

输出三种输出方式System.out.println(msg);输出内容自带换行。println print lineSystem.out.println(hello world);System.out.print(msg);输出内容不换行。多条 print 输出会连在同一行System.out.print(hello); System.out.print(world); // 输出 helloworld同一行System.out.printf(格式串, 数据);格式化输出语法和 C 语言printf几乎一样用转换符占位int x 10; System.out.printf(x %d\n, x); //输出x 10区别println自带\n换行print不换行printf靠格式串里写\n实现换行格式化转换符表System.out.println(hello world); System.out.print(hello ); //不换行 System.out.print(world); System.out.println(); //格式化输出 int x20; System.out.printf(%d \n,x);输入从键盘输入Scanner用来读取键盘输入必须先导包import java.util.Scanner;import java.util.Scanner; public class Test { public static void main(String[] args) { 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(); // 使用完毕关闭Scanner } }nextLine()读取一整行字符串可以读取空格读到回车结束nextInt()读取整数nextFloat()读取浮点数思考问题先输入年龄、再姓名、再工资会出现什么问题代码顺序变成nextInt() → nextLine() → nextFloat()int age sc.nextInt(); String name sc.nextLine(); // 这里会出问题 float salary sc.nextFloat();现象输入完年龄敲回车之后程序不会等待你输入姓名直接跳过 name 的输入原因nextInt()只拿走数字把按下的回车\n留在缓冲区紧接着nextLine()直接读到这个回车认为输入结束得到空字符串解决办法a)在nextInt()之后额外加一句sc.nextLine();吃掉残留换行int age sc.nextInt(); sc.nextLine(); // 吃掉缓冲区剩下的回车 String name sc.nextLine();b全部都用nextLine()读取再手动转数字//先输入年龄姓名 工资 Scanner scnew Scanner(System.in); System.out.println(请输入你的年龄); int agesc.nextInt(); sc.nextLine(); System.out.println(请输入你的姓名); String namesc.nextLine(); // 程序出错nextInt只拿数字留下\nnextLine 读到\n认为读取结束 //解决nextInt 留下的空格在nextInt的下面加sc.nextLine(),吃吃掉缓冲区剩下的回车 System.out.println(请输入你的工资); float salarysc.nextFloat(); System.out.println(你的信息如下); System.out.println(年龄age\n姓名name\n工资salary); sc.close(); //使用完关闭多组循环输入示例循环读取若干数字求总和与平均值import java.util.Scanner; public class Test2 { public static void main(String[] args) { Scanner sc new Scanner(System.in); int sum 0; int num 0; // hasNextInt() 判断下一个输入是不是整数 while (sc.hasNextInt()) { int tmp sc.nextInt(); sum tmp; num; } System.out.println(sum sum); System.out.println(avg (double)sum / num); sc.close(); } }原理sc.hasNextInt()检测到输入流结束返回 false循环终止注意坑点sum / num如果两个都是 int会做整数除法 (整数除法得到的是整数舍弃小数部分想要小数平均值要强制类型转换(double) sum / num按Ctrl D结束总结Scanner 常用方法核心坑点nextInt/nextFloat/next不会吃掉回车后面接 nextLine 会读到空字符串猜数字游戏游戏规则程序自动生成1‑100的随机整数用户不断输入猜测数字猜的数字 随机数→ 输出低了猜的数字 随机数→ 输出高了猜的数字 随机数→ 输出猜对了结束游戏Random randomnew Random(); Scanner scnew Scanner(System.in); while(true) { //nextInt(100) 生成0 -- 99 加1变成 1 -- 100 int toGuessrandom.nextInt(100)1; // 1 -- 100 System.out.println(toGuess); System.out.println(请输入你要输出的数字(1 -- 100)); int numsc.nextInt(); if(numtoGuess) { System.out.println(猜低了); } else if (numtoGuess) { System.out.println(猜高了); } else { System.out.println(猜对了); break; //跳出循环 } } sc.close(); //使用完关闭注意random.nextInt(100) 范围是0‑99会出现 0所以需要1得到 1‑100
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门