Java- 控制台的输入和由Hello World引发的两个小问题
控制台输入
我不是很清楚为什么,Java的DOS控制台的输入会加一下TRY…CATCH,很多其他编程语言里没有过这样。虽然看到JDK 1.5后有增加了一个新类Scanner将System.in做了一个包装的样子后不需要再TRY…CATCH。但用起来还是感觉还是不太好!来看一下报错的输入,像这段程序是会报错了。报错的原因是:test8.java:6: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便抛出。
public class test8 { public static void main(String[] args) { int x; x = System.in.read(); } }
竟然有这样的错误,那么TRY…CATCH一下后,他运行正常,不会再有错误。
public class test8 { public static void main(String[] args) { int x; try { x = System.in.read(); } catch(Exception e) { } } }
那么来做一个非常简单的例子,输入三个数,求出他的总数之和。不知道用System.in.read()怎么做,反正他也很不方便,就不去想了。
用Scanner实现需要引入一个JAVA包:import java.util.*;
import java.util.*; public class test8 { public static void main(String[] args) { int x=-1; int y=-1; int z=-1; int sum=-1; Scanner reader = new Scanner(System.in); x = reader.nextInt(); y = reader.nextInt(); z = reader.nextInt(); sum = x+y+z; System.out.println(sum); } }
可是上面开辟了三个变量x,y,z,也太浪费了吧。改写一下。
import java.util.*; public class test8 { public static void main(String[] args) { int sum=-1; Scanner reader = new Scanner(System.in); while(reader.hasNextInt()) { sum += reader.nextInt(); } System.out.println(sum); } }
由一个Hello World引发的两个小问题,
看一下Hello World简单的小程序,提出两个疑问,第一个是为什么是void,不能是其他的吗?第二个括号里的String[] args有什么用?
我们先来看一下简单的Hello World小程序。
public class test8
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}
第一个问题,其实void他相当于return 0;相当于这么写
public class test8
{
public static int main(String[] args)
{
System.out.println("Hello world");
return 0;
}
}
第二个问题,args 能接收DOS命令时传递过来的参数。假设我们的程序这么写
public class test8
{
public static void main(String[] args)
{
System.out.println(args[0]);
}
}
那么在DOS下需要这样,才能将args的第一个参数输出出来