Java 使用循环生成整数
我想从键盘上得到整数值。 减去48将使ASCII码成为我在键盘上输入的值 我不想只在第一个数字中这样做,而是使用while循环和if条件,在键盘上输入什么,就生成一个整数 你认为问题出在哪里?Java 使用循环生成整数,java,while-loop,Java,While Loop,我想从键盘上得到整数值。 减去48将使ASCII码成为我在键盘上输入的值 我不想只在第一个数字中这样做,而是使用while循环和if条件,在键盘上输入什么,就生成一个整数 你认为问题出在哪里? 请帮帮我。我不知道这是否是您要找的,但是如果您试图通过减去48值来创建ASCII到int,那么下面是正确的代码: import java.io.IOException; public class Main { public static void main(String[] args) thr
请帮帮我。我不知道这是否是您要找的,但是如果您试图通过减去48值来创建ASCII到int,那么下面是正确的代码:
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
int number = 0;
int keyValue = System.in.read();
keyValue = keyValue - 48;
number = number * 10 + keyValue;
System.out.println(number);
while(true) {
keyValue = System.in.read();
keyValue = keyValue - 48;
number = number * 10 + keyValue;
System.out.println(number);
if(keyValue == 120) {
number = number - 120;
System.out.println(number);
break;
}
}
}
}
案例:
当你输入48你得到0,49你得到1。。。当您输入168时,循环中断,程序结束
我希望这对你有帮助。你的代码出现中断条件太晚了:
数字已经搞糟了,乘以10,加上120-48。原始键值-48==120`
但是我想你想测试字母'x'
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;
}
}
}
但是,console System.in是行缓冲的,在按下Enter键之前,您将无法获得输入。您希望逐行打印还是单行打印。如果你想让它在一行中。希望您从下面的代码片段中获得帮助:-
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);
}
“减法48”减法'0'
更清晰,也更等效。问题是你对自己的问题含糊不清。同时,你也要冒着与while无休止循环的风险(没错)。如果(keyvalue==120)从未计算为true,那么…System.in
buffers inputSystem.in.read()
在刷新之前不会返回任何内容,例如按enter键或关闭流。
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