Java 使用循环生成整数

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码成为我在键盘上输入的值

我不想只在第一个数字中这样做,而是使用while循环和if条件,在键盘上输入什么,就生成一个整数

你认为问题出在哪里?
请帮帮我。

我不知道这是否是您要找的,但是如果您试图通过减去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 input
System.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