Java初学者:基本输入输出方法
上次我们计算数学表达式的时候,是先给变量赋值,然后进行计算,最后把结果显示出来。我们的变量值,是在程序中一开始就已经设定好的。那么如果我们不想一 开始就设定好,而是在程序运行的时候自己输入变量值呢?这就需要基本输入输出了。本次我们就说一下最简单最常用的输入输出方法:Scanner, print.
首先,Scanner,Scanner是什么意思呢?字面理解,扫描仪,扫描器。是的,它就是这个意思,但是它不扫描别的,它扫描用户的输入,其实准确的 说,它监视用户的输入并且得到输入的内容,Scanner是一个java的内建类,为了使用Scanner,我们需要在程序开始手动导入Scanner的 包,这样:import java.util.Scanner; 然后我们需要建立一个Scanner类的实例,为此我们需要使用new关键字。目前为止,我们暂且如此定义一个Scanner实例:
Scanner thename = new Scanner(System.in);
这里有两个地方是可以改动的,一个是thename, 这是你的命名,你可以命名成keyboard,命名成input,只要不是关键字,并且符合命名规则,都可以(但尽量使用有意义的名字,最好不要使用 jianbo,因为我不是一个扫描仪)。还有一个就是System.in,这是参数,在此表示输入设备,大多数时候,也就是键盘了。你可以改成别的,但是 现在,还是别动的比较好。
然后我们怎么使用它呢?比如我们这么定义一个Scanner:Scanner keyboard = new Scanner(System.in);然后呢?然后我们就可以这样得到一个int型的数据了:keyboard.nextInt(),一般,我们应该把 它赋值给一个变量,比如:int n = keyboard.nextInt();这样,java在运行到这里时,会停止,光标闪动,等待你的插入,我是说,等待你的输入,等你输入以后,才会得到 n的值,然后继续运行程序。keyboard.nextDouble() 会得到一个双精度类型的数据,keyboard.nextLine() 会得到一个字符串(即使你输入数字,也会被看成字符串)。
好了,接下来再说说print,这是用来在终端(显示器)上显示信息的命令。在前文我们的例子中已有使用,它的使用方法 是:System.out.print("你要显示的内容"); 其中,System存在于java的lang包里,而out是lang包的子包,print则是out包里面的方法。如果你听不懂的话,暂且如此记住就 好。out包里有很多方法,不只是print一个,就单单说显示信息的方法,常用的就有三个:print,println,printf。这三个有什么异 同呢?
他们三个的共同之处在于,他们的主要功能都是显示信息。而他们的用法也有些相近。那么他们之间的区别呢?让我们来分别介绍一下他们吧。
print方法:这是最基本的输出方法,表示输出信息,停留在本行,不换行。
println方法:这个方法与print类似,唯一不同的是,输出后,换行。
printf方法:这个方法比较不同,这是格式化输出,其用法为printf(字符串格式,变量值),如何做呢?比如这样:
System.out.printf("an integer %d, a double number %f, a string %s, a boolean value %b!", 4, 5.6, "Hello baby", true);
这个的运行结果就是显示这么一条信息:an integer 4, a double number 5.6, a string Hello baby, a boolean value true! %d,代表这里将要替换成一个整型的数,%f,表示这里要替换成一个浮点型的数组,%s,表示这里要替换成一个字符串,%b表示要换成一个布尔型的数。而 后面的4, 5.6, "Hello baby", true,将会对应的替换到前面的信息里,就是说,由于第一个是4,而第一个百分号出现在an integer 后面,于是java就将把4放到那儿,而正好,那里是%d,正好换成一个整型,同理,后面的都一样,按照顺序替换。那如果4那里,你不写4,也不写其他的 整型数字,而是写个什么“what a day”呢?对不起,java会报错,你那儿明明是%d,是要放个整型数据的,可你偏偏来了个字符串,那整不了啦。
好了,这就是基本的输入输出方法,下面我们来做一个简单的两数相加的程序,与以前不同的是,我们这次让用户来输入数据,并且我们用三种方式打印出结果。如下所示:
从上面的结果看出来,使用格式化输出的时候,精度似乎更高了,而其他输出,似乎会丢弃不必要的精度,对此,本菜鸟只是猜测,如有说错请勿见笑。好了,今天就写到这里,希望各位初学者回去多多揣摩练习,多读一些教程,多练习写写程序。