有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么java是无限的,而我的代码中的循环和值不是零?

我正在编写一个程序代码,用于反转输入,我编写的代码如下所示:

/*
 * Author: Mohammed Khalid Alnahdi
 *
 * This program is reverse the number.
 * for example 123 to 321
 *
 */

// call utility to take number from the users.
import java.util.Scanner;

class ReverseNumberInput{
        public static void main(String[] args){

        //we call the tool of take number.
                Scanner take = new Scanner(System.in);

                int inputNumberUser, printValue = 0;

                System.out.print("Please enter the number : ");

                inputNumberUser = take.nextInt();

                System.out.print("the reverse number is : ");

                while(inputNumberUser != 0){
                                printValue = inputNumberUser % 10;
                                inputNumberUser = inputNumberUser- printValue;
                                System.out.printf("%d",printValue);
                        }
                }
        }

这个问题的答案是两个为什么

第一个解决方案是替换

inputNumberUser = inputNumberUser- printValue;

inputNumberUser = inputNumberUser/10;

第二个是

                while(inputNumberUser != 0){
                               int digit = inputNumberUser % 10;
                                printValue = printValue * 10 + digit;
                                inputNumberUser = inputNumberUser/10;
                        }
System.out.print(printValue);

我的问题是,为什么我在第一个代码中没有给出inputNumberUserzero值,同时扣除剩余值,直到put值为零


共 (1) 个答案

  1. # 1 楼答案

    你需要把减法的结果除掉

    在每次迭代后inputNumberUser = inputNumberUser- printValue;

    例如,您有一个输入154

    154 - 4 = 150是你的下一个inputNumberUser

    在下一次迭代中

    150 - 0 = 150是你的下一个inputNumberUser

    所以你的输出是40000...

    如果在每次迭代后将inputNumberUser除以10,则

    15 - 5 = 10是你的下一个inputNumberUser

    然后

    1 - 1 = 0是你的下一个inputNumberUser