此题是蓝桥杯的一道竞赛试题,在编写程序时,遇到了printf的用法,不是很熟悉,特此总结一下。
以下是对Java中print、printf、println的区别进行了详细的分析介绍,需要的朋友可以过来参考下
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出
print就是一般的标准输出,但是不换行
println和print基本没什么差别,就是最后会换行
System.out.printf(“the number is: d”,t);
参照JAVA API的定义如下:
‘d’ 整数 结果被格式化为十进制整数
‘o’ 整数 结果被格式化为八进制整数
‘x’, ‘X’ 整数 结果被格式化为十六进制整数
‘e’, ‘E’ 浮点 结果被格式化为用计算机科学记数法表示的十进制数
‘f’ 浮点 结果被格式化为十进制数
‘g’, ‘G’ 浮点 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
‘a’, ‘A’ 浮点 结果被格式化为带有效位数和指数的十六进制浮点数
println(“test”)相当于print(“testn”)就是一般的输出字符串
printprintlnprintf的区别
print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
printf是格式化输出的形式。

double d = 345.678;
String s = "hello!";
int i = 1234;
//"%"表示进行格式化输出,"%"之后的内容为格式的定义。
System.out.printf("%f",d);//"f"表示格式化输出浮点数。
System.out.printf("%9.2f",d);//"9.2"中的9表示输出的长度,2表示小数点后的位数。
System.out.printf("%+9.2f",d);//"+"表示输出的数带正负号。
System.out.printf("%-9.4f",d);//"-"表示输出的数左对齐(默认为右对齐)。
System.out.printf("%+-9.3f",d);//"+-"表示输出的数带正负号且左对齐。
System.out.printf("%d",i);//"d"表示输出十进制整数。
System.out.printf("%o",i);//"o"表示输出八进制整数。
System.out.printf("%x",i);//"d"表示输出十六进制整数。
System.out.printf("%#x",i);//"d"表示输出带有十六进制标志的整数。
System.out.printf("%s",s);//"d"表示输出字符串。
System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s);//可以输出多个变量,注意顺序。
System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x",i,s);//"X$"表示第几个变量。

下面是那道题目:

package 赌博;public class Question {/*** 古代赌局 【编程题】(满分23分) 俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。* 有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。* 所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下: 1.* 若某一个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目赔付(即1比1的赔率)。 2.* 若有两个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目的2倍赔付(即1比2的赔率)。 3.* 若三个骰子上的数字都与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按他押注的数目的6倍赔付(即1比6的赔率)。 4.* 若玩家所押注匣子号与某个骰子示数乘积等于另外两个骰子示数的乘积,则玩家拿回自己的押注,庄家也不赔付(流局)。 5.* 若以上规则有同时满足者,玩家选择对自己最有利的规则。规则执行后,则庄家收获所有匣子上剩余的押注。* 乍一看起来,好像规则对玩家有利,庄家吃亏。但经过大量实战,会发现局面很难说,于是怀疑是否庄家做了手脚,* 庄家则十分爽快地说:可以由玩家提供骰子,甚至也可以由玩家来投掷骰子。 你的任务是:通过编程模拟该过程。模拟50万次,* 假定只有1个玩家,他每次的押注都是1元钱,其押注的匣子号是随机的。* 再假定庄家有足够的资金用于赔付。最后计算出庄家的盈率(庄家盈利金额/押注总金额)。 【输入、输出格式要求】* 程序无输入,程序运行输出庄家的盈率,四舍五入保留到小数后3位。*/public static void main(String[] args) {int sum = 0;// 假设庄家本钱为零,因为庄家的盈率(庄家盈利金额/押注总金额(500000))for (int i = 0; i < 500000; i++) {int x = (int) (Math.random() * 6 + 1);// 玩家下注int a = (int) (Math.random() * 6 + 1);// 骰子随机数1号int b = (int) (Math.random() * 6 + 1);// 骰子随机数2号int c = (int) (Math.random() * 6 + 1);// 骰子随机数3号if (x == a && x == b && x == c) {sum -= 6;} else if (x == a && x == b || x == a && x == c || x == b && x == c) {sum -= 2;} else if (x == a || x == b || x == c) {sum -= 1;} else if ((x * a == b * c) || (x * b == a * c) || (x * c == a * b)) {sum -= 0;} else {sum += 1;}}// System.out.println(sum/500000);System.out.printf("%.3f", sum / 500000f);// sum/500000f 为什么加f呢???????/*** printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行* println和print基本没什么差别,就是最后会换行 参照JAVA API的定义如下: 'd' 整数 结果被格式化为十进制整数 'o'* 整数 结果被格式化为八进制整数 'x', 'X' 整数 结果被格式化为十六进制整数 'e', 'E' 浮点* 结果被格式化为用计算机科学记数法表示的十进制数 'f' 浮点 结果被格式化为十进制数 'g', 'G' 浮点* 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。 'a', 'A' 浮点* 结果被格式化为带有效位数和指数的十六进制浮点数 println("test")相当于print("testn")就是一般的输出字符串* printprintlnprintf的区别 print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。* println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。 printf是格式化输出的形式。* * */}}

java中printf,print,println,区别及用法详解相关推荐

  1. javaScript中const,var,let区别与用法详解

    业务场景:今天想从正则表达式数组对象取出几个参数的值,发现好多人都用的const声明的变量,这里一起总结一下吧. 上一篇-->前端使用正则表达式获取地址栏URL参数的值并将需要的参数值展示在页面 ...

  2. java return返回值_java中关于return返回值的用法详解

    我们输入一个条件时,系统就会对这个条件进行判断,然后给出一个返回时的结论,我们把这个结果看做是返回值.在java里可以使用return语句来进行返回,从字面意思就能很好的理解它的用法了.下面我们就re ...

  3. java path类_基于java Files类和Paths类的用法(详解)

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...

  4. java中sleep()、wait()相同与不同详解

    java中sleep().wait()相同与不同详解 相同 java中Thread#sleep和Object#wait方法都是暂停当前线程,当前线程让出CPU占用.并不存在调用sleep后还占用CPU ...

  5. Java中的宏变量,宏替换详解。

    转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...

  6. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  7. python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解

    Python中有三个去除头尾字符.空白符的函数,它们依次为: strip: 用来去除头尾字符.空白符(包括n.r.t.' ',即:换行.回车.制表符.空格) lstrip:用来去除开头字符.空白符(包 ...

  8. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  9. linux 移动剪切命令,Linux中vi的复制命令的用法详解

    在Linux系统中,使用VI编辑的时候经常用到的操作就是复制粘贴,那么下面由学习啦小编为大家整理了linux中vi的复制命令的用法详解的相关知识,希望对大家有帮助! Linux中vi的复制命令的用法详 ...

  10. python中rstrip用法_浅谈Python3中strip()、lstrip()、rstrip()用法详解

    简单来说,三种方法是为了删除字符串中不同位置的指定字符.其中,strip()用于去除字符串的首尾字符,同理,lstrip()用于去除左边的字符,rstrip()用于去除右边的字符 Python中有三个 ...

最新文章

  1. [转]预备知识—程序的内存分配
  2. Linux C++写日志
  3. 用vmware安装win7虚拟机(windows10系统)
  4. 登录验证---过滤器(Fileter)
  5. 第三次学JAVA再学不好就吃翔(part90)--TreeSet
  6. SAP Spartacus CmsComponentConnector
  7. python实现火车票查询_python实现12306火车票查询器
  8. Cannot find module 'less-bundle-promise'
  9. 遍历字典_十三、Python字典三种遍历方法
  10. 7.这就是搜索引擎:核心技术详解 --- 云存储与云计算
  11. 【云原生 | Docker篇】 Docker容器配置阿里云镜像加速器
  12. Linux 中的 20 大网络监控工具
  13. linux硬盘格式化物理卷,创建物理卷报错Can't open /dev/sdb5 exclusively. Mounted filesystem的问题解决过程记录......
  14. 所谓五福临门中的五福
  15. unity 裙子摆动_【Unity Shader】摇摆的小草——顶点动画
  16. 认识程序集:1. 程序集的生成
  17. 大数据与算法系列之算法性能分析
  18. java system.nanotime_java中的System.nanoTime与System.currentTime
  19. 网络工作室官网HTML源码
  20. python3 requests+bs4爬取某网页MM图片

热门文章

  1. VQLS:变分量子算法解线性方程组
  2. USB扫码枪无焦点输入到指定页面、指定文件框中
  3. Allegro如何使用Snake命令走蛇形线操作指导
  4. Js与Jq实战:第七讲:jQuery基础
  5. 骨传导黑科技新秀-Nineka南卡骨传导耳机,运动最佳伴侣
  6. 一带一红网红基地推出O2O网红直播过年模式
  7. sequelize 的op模块
  8. MySQL中强大的mysqladmin
  9. Prism4学习笔记(七):State-Based Navigation QuickStart
  10. 计算机是如何存储数字的?