3 回答

TA貢獻(xiàn)1735條經(jīng)驗 獲得超5個贊
您的代碼的中斷條件為時已晚:原始鍵值 - 48 == 120'。number already messed up, multiplied by 10, added the 120 - 48. The
但我認(rèn)為你想在字母上進(jìn)行測試。'x'
while (true) {
keyValue = System.in.read();
if (keyValue == 'x') {
System.out.println(number);
break;
}
keyValue = keyValue - '0';
number = number * 10 + keyValue;
System.out.println(number);
}
但是,控制臺 System.in 是行緩沖的,在按下 Enter 鍵之前,您將不會獲得輸入。

TA貢獻(xiàn)1876條經(jīng)驗 獲得超5個贊
您希望它一個接一個地打印還是在一行中打印。如果您希望它在一行中。希望您能從下面的代碼片段中獲得幫助:-
public class Main {
public static void main(String[] args) throws IOException {
int number = 0;
int keyValue = 0;
/*int keyValue = System.in.read();
keyValue = keyValue - 48;
number = number * 10 + keyValue;
System.out.println(number);*/
while (true) {
number =0;
keyValue = System.in.read();
keyValue = keyValue - 48;
if(keyValue == -38){
System.out.println();
}else {
if (keyValue < 0 || keyValue > 122) {
System.out.println(" BREAK "+keyValue);
break;
}
number = number * 10 + keyValue;
System.out.print(number);
}
}
}
}
輸出 :-
1
1
2
2
3
3
123
123
345
345
5556
5556
789
789

TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊
我不知道這是否是您要查找的,但是如果您嘗試通過減去48值來創(chuàng)建ASCII to int,那么這里是正確的代碼:
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int number = 0;
System.out.println("Please enter your ASCII code!");
int keyValue = sc.nextInt();
keyValue = keyValue - 48;
number = number * 10 + keyValue;
System.out.println(number);
while (true) {
number = 0;
System.out.println("Please enter your ASCII code!");
keyValue = sc.nextInt();
keyValue = keyValue - 48;
number = number * 10 + keyValue;
System.out.println(number);
if (keyValue == 120) {
number = number - 120;
System.out.println(number);
break;
}
}
}
例:
當(dāng)您輸入48時,您將獲得0,使用49,您將獲得1 ...當(dāng)您輸入168時,循環(huán)中斷,程序結(jié)束。
我希望這對你有幫助。
添加回答
舉報