Java要想通过控制台进行输入,首先要构造一个Scanner对象,并与“标准输入流”System.in关联。
其标准形式为
Scanner.in = new Scanner(System.in);
然后就可以通过Scanner类的各种方法实现输入操作,下面进行举例。
nextLine方法可以输入一行,但可能包含空格。
next可以读取字符串中的一个单词。
nextInt可以读取一个整数。
nextDouble可以读取一个浮点数。
在一些题目中我们常常遇到从键盘读取数字的要求。而这些要求是多变的,举几个例子说明。
1、输入样例:
6
10
12
0
按行读取,并以0作为输入结束的标志。此时代码应该这样编写。
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int num = in.nextInt();
if (num == 0) {
break;
}
}
2、输入样例
3
4
5
7
按行读取,第一个数决定输入的个数。此时代码应该这样编写。
Scanner in = new Scanner(System.in);
int t = in.nextInt();
for (int i = 0; i < t; i++) {
int num= in.nextInt();
}
}
3、输入样例
1 3
2 4
6 4
3 5
按行读取,每行有两个数字。
此时代码应该这样编写。
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
}
附上两段完整代码:
1、
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t = in.nextInt();
while (in.hasNext()) {
int n= in.nextInt();
if (n == 0) {
System.out.println(0);
continue;
}
int sum = 1;
for (int i = 0; i < n; i++) {
while (n > 0) {
if (n % 2 == 0) {
sum *= 2;
}
n /= 2;
}
}
System.out.println(sum);
}
in.close();
}
}
2、
package ziyue;
import java.util.Scanner;
public class zhishu {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int num = in.nextInt();
if (num == 0) {
break;
}
int sum = 0;
for (int i = 2; i <= num / 2; i++) {
if (su(i) && su(num - i)) {
sum++;
}
}
System.out.println(sum);
}
in.close();
}
public static boolean su(int n) {
int count = 0;
for (int i = 2; i < n; i++) {
if (i > 0 && n % i == 0) {
count++;
}
}
return(count == 0);
}
}