关于输入的一部分心得
- Scanner输入一共分3步输入。
第一步 :先导包,输入在最前面。import java.util.Scanner;
(如果没有这一项的话,程序会报错的)。
第二步 :创建需要输入的对象格式 :
`Scanner ___ =new Scanner(System.in);
横线部分是你可以自己命名的部分(不可以是关键字 , 只要好区分开来就行)。例如
Scanner input=new Scanner(System.in);
第三步:接受创建的对象
例如int x=input.nextInt();
//这里的右边数据(例子里面的input)需要与上述例子中左边的Scanner input 对应。
有一些需要注意的地方:
-
1.在第三步里,可以先对x定义数据类型,但相应的是后面的next也要有所变化。
int x; x=nextInt(); //或者是 double x=nextDouble();
对于Scanner有
nextBoolean()、nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()和nextDouble这些类型,分别对应不同的数据类型。
- 2.上述说明了不同的数据有不同的next对应。但是,如果是这样会报错吗?
import java.util.Scanner;//导包 public class Test{ public static void main(String[] args){ Scanner input = new Scanner(System.in);//创建对象 double x=input.nextInt();//接受对象,这里输入12 System.out.println("x="+x);//输出数据。
输出结果:
这可以的原因是double范围大,int可以自动转换为double,如果这里反过来写成
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int x=input.nextDouble();//还是输入12
System.out.println("x="+x);//输出数据。
就报错了。所以还是写一一对应的类型比较好吧。
- 3 上述都只是输入一个数据,如果变成二个呢(多个现在还在研究以后学了再写吧。)
int a,b ;//输入两数相加。 Scanner input=new Scanner(System.in); a=input.nextInt(); b=input.nextInt();//现在输入2,3; System.out.println("a+b="+(a+b)); //这里a,b得括号括起来。
这里只要输入了2项以空格或者回车隔开的数据就会直接相加了。
如果换成以下例子的话。
int a,b ;
Scanner input=new Scanner(System.in);
Scanner input2=new Scanner(System.in);
a=input.nextInt();
b=input2.nextInt();//还是同样输入2,3;//这里的变化是b变成input2了。
System.out.println("a+b="+(a+b));
上图没有输出而是停在下了,还在等待输入。这就是说如果只在一行输入数据,按空格也好,都是不会输出的,只有按了回车键到下一行才会读取数据。而且是只读取第一项(也就是按空格前的那些)。第二行同理。