代码:
public class Adddemo {
public static void main(String[] args) throws IOException {
int i, j, k;
System.out.println("enter value of i: ");
i = (int) System.in.read();
System.out.println("enter value of j: ");
j = (int) System.in.read();
k = i + 1;
System.out.println("sum is: " + k);
}
}
System.in.read
是否用于多个输入?
答案 0 :(得分:3)
System.in.read()
用于读取角色。
假设您输入12,则i
变为1(49 ASCII)
而j
变为2(50 ASCII)
。
假设您输入1
然后按Enter键,i
变为(ASCII 49)
和enter(ASCII 10)
,即使输入也被视为字符,因此会跳过您的第二个输入。
改为使用scanner
或bufferedReader
。
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int j = sc.nextInt();
int k = i + j;
System.out.println(k);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int i = Integer.parseInt(reader.readLine());
int j = Integer.parseInt(reader.readLine());
int k = i + j;
System.out.println(k);
答案 1 :(得分:1)
System.in.read()没有读取数字,它读取一个字节并将其值作为int返回。
如果输入一个数字,则会返回48 +该数字,因为数字0到9的ASCII编码值为48到57.
要从System.in读取数字,您应该使用扫描仪。
答案 2 :(得分:0)
改为使用Scanner类:
import java.util.Scanner;
public class Adddemo {
public static void main(String[] args) throws IOException {
Scanner read=new Scanner(System.in);
int i,j,k;
System.out.println("enter value of i: ");
i=(int)read.nextInt();
System.out.println("enter value of j: ");
j=(int)read.nextInt();
k=i+1;
System.out.println("sum is: "+k);
}
}
答案 3 :(得分:0)
System.in.read()一次读取1个字节。
如果要输入i和j的输入值,请执行此操作
在控制台中输入输入时,在1和2之间留一个空格
1将被视为i的值
2将被视为j
将输入设为12(无空格)也会产生相同的结果,因为每个字节都被视为输入
program
int i,j;
char c,d;
System.out.println("enter value of i: ");
i=(int)System.in.read();
System.out.println("enter value of j: ");
j=(int)System.in.read();
System.out.println("i is: "+i);
System.out.println("j is: "+j);
Output:
enter value of i,j:
1 2 //leave one space
i is: 1
j is: 2
如果你还不明白,请告诉我