Java 控制台的输入和由Hello World引发的两个小问题

控制台输入  

  我不是很清楚为什么,Java的DOS控制台的输入会加一下TRY…CATCH,很多其他编程语言里没有过这样。虽然看到JDK 1.5后有增加了一个新类Scanner将System.in做了一个包装的样子后不需要再TRY…CATCH。但用起来还是感觉还是不太好!来看一下报错的输入,像这段程序是会报错了。报错的原因是:test8.java:6: 未报告的异常 java.io.IOException;必须对其进行捕捉或声明以便抛出。

View Code
public class test8
{
 public static void main(String[] args)
 {
  int x;
  x = System.in.read();
 }
}

竟然有这样的错误,那么TRY…CATCH一下后,他运行正常,不会再有错误。

View Code
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.*;

View Code
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,也太浪费了吧。改写一下。

View Code
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的第一个参数输出出来

原文地址:https://www.cnblogs.com/cxeye/p/2673453.html