亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用循環創建整數

使用循環創建整數

瀟湘沐 2022-08-03 15:18:10
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將使ASCII代碼成為我在鍵盤上輸入的值。我不僅想在第一位數字中執行此操作,而且要使用while循環和if條件,在鍵盤上輸入任何內容時都創建一個整數。您認為問題出在哪里?請幫幫我。
查看完整描述

3 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

您的代碼的中斷條件為時已晚:原始鍵值 - 48 == 120'。number already messed up, multiplied by 10, added the 120 - 48. The


但我認為你想在字母上進行測試。'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 鍵之前,您將不會獲得輸入。


查看完整回答
反對 回復 2022-08-03
?
慕運維8079593

TA貢獻1876條經驗 獲得超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


查看完整回答
反對 回復 2022-08-03
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

我不知道這是否是您要查找的,但是如果您嘗試通過減去48值來創建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;

        }

    }

}

例:


當您輸入48時,您將獲得0,使用49,您將獲得1 ...當您輸入168時,循環中斷,程序結束。


我希望這對你有幫助。


查看完整回答
反對 回復 2022-08-03
  • 3 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號