当前位置: 首页 > 知识库问答 >
问题:

使用while循环返回整数的第一位和最后一位

宣冥夜
2023-03-14

我一直在尝试编写一个使用while循环返回输入的第一个和最后一个数字的程序。

到目前为止我得到的是:

import java.util.Scanner;
public class FirstLastInt {
public static void main(String[]args)
{
    int fdig, ldig, num;

    Scanner in = new Scanner(System.in);

    System.out.println("Enter an Integer.");
    num = in.nextInt();

    ldig = num%10;

    while (num > 0)
    { fdig = num/10;
        num = num/10;

         System.out.println("The first digit is " + fdig + ", and the last digit is " + ldig + ".");
    }
}
run:
Enter an Integer.
98884
The first digit is 9888, and the last digit is 4.
The first digit is 988, and the last digit is 4.
The first digit is 98, and the last digit is 4.
The first digit is 9, and the last digit is 4.
The first digit is 0, and the last digit is 4.
BUILD SUCCESSFUL (total time: 3 seconds)

看起来循环在我得到我想要的数字之前和之后运行。有没有指定哪一行我想打印?(在示例中,它是“第一个数字是9,最后一个数字是4。”)

共有1个答案

潘雅珺
2023-03-14

如果您希望继续使用自己的代码来查看如何通过这种方式实现,那么更改while条件并将系统打印移到外部:

import java.util.Scanner;
public class FirstLastInt {
    public static void main (String[] args) {
        int ldig, num;

        Scanner in = new Scanner(System.in);

        System.out.println("Enter an Integer.");
        num = in.nextInt();

        ldig = num % 10;

        // keep looping num until it is in the range of 0-9
        while (num >= 10) {
            num = num / 10;
        }
        //initialize fdig variable and set it equal to num, just to make things clearer
        int fdig = num;

        System.out.println("The first digit is " + fdig + ", and the last digit is " + ldig + ".");
    }
}
 类似资料:
  • 下面代码中编写的方法需要取整数以及整数中第一位和最后一位的结果和。 注意:虽然我知道正确的解决方案,但我问这个问题的原因是我需要了解为什么我的代码不起作用,因为这使我成为一名更好的程序员,请帮助。 在上面的代码中,如果我在if块之后保持number/=10,如下所示 然后我的代码给出了正确的结果。例如,如果我在方法中输入121,因为第一个数字是1,第二个数字是1,那么它将两者相加,并给出结果2。这

  • 我的程序中有两个while循环。第一个是针对游戏菜单的,第二个是针对实际游戏的。如果“Gameover-Event”发生,我想返回菜单。我不知道该怎么做。

  • 问题内容: 我正在使用一个while循环来遍历游标,然后输出数据库中每个点的经度和纬度值。 由于某种原因,它不会返回游标中的最后一组(或第一个,取决于我是否使用Cursor.MoveToLast)经度和纬度值。 这是我的代码: 由此我得到: 04-02 15:39:07.416:INFO / System.out(10551):3.0 04-02 15:39:07.416:INFO / Syste

  • 感谢您的建议这是我第一次使用stackoverflow,因为我对编程相当陌生。我遇到的问题是,在执行while循环之后,我的程序没有请求名称。它似乎不在这一行之后执行。System.out.print(“输入减肥者的姓名:”);字符串名称=input.nextLine();有人能解释一下我可能错过了扫描器实用程序的使用吗。

  • 我有一个名字列表,我想把一个人名字中的第一个和最后一个单词分开。 我试图使用“trim”功能,但没有成功。 有人能解释一下我是怎么做到的吗? 表: 因此,我想要: 谢谢

  • 这是一个我被难住的家庭作业问题。我的教授建议查阅Math.abs()方法。 我需要在main方法中使用Scanner对象来查询用户的输入,然后使用Scanner输入作为指定方法的参数。在名为Digit的类中,编写一个名为lastDigit的方法,返回整数的最后一位。例如,lastDigit(3572)应返回2。 以下是我目前拥有的: