粘贴循环(Java)

问题描述 投票:0回答:2

全部!我是大学一年级计算机科学专业,正在学习编程课程。在做作业问题时,我陷入了代码的某个部分。请好心,因为这是我的第一学期,而且我们只使用Java已有3周的时间。

对于上下文,我的任务是:“创建一个程序,要求用户输入名称并输入他们每天要走的步数。然后询问他们是否要继续。如果答案为“是”,则请他们输入其他步数再次询问他们是否要继续。如果他们键入“是”以外的任何内容,则应通过告诉他们“再见,[NAME]”和他们输入的步骤数之和来结束程序。“

对于我的一生,我无法结束while循环。它忽略了我(可能以不正确的方式)设置的条件。

您能帮我告诉我我在做什么错吗?

import java.util.Scanner;

public class StepCounter 
{

    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) 
    {
        final String SENTINEL = "No";

        String userName = "";
        String moreNum = "";
        int numStep = 0;
        int totalStep = 0;
        boolean done = false;
        Scanner in = new Scanner(System.in);
        Scanner in2 = new Scanner(System.in);

        // Prompt for the user's name
        System.out.print("Please enter your name: ");
        userName = in.nextLine();

        while(!done)
        {
            // Prompt for the number of steps taken
            System.out.print("Please enter the number of steps you have taken: ");
            // Read the value for the number of steps
            numStep = in.nextInt();
            // Prompt the user if they want to continue
            System.out.print("Would you like to continue? Type Yes/No: ");
            // Read if they want to continue
            moreNum = in2.nextLine();
            // Check for the Sentinel
            if(moreNum != SENTINEL)
            {
                // add the running total of steps to the new value of steps
                totalStep += numStep;
            }
            else
            {
                done = true;
                // display results
                System.out.println("Goodbye, " + userName + ". The total number of steps you entered is + " + totalStep + ".");
            }
        }
    }

}
java loops while-loop infinite-loop
2个回答
1
投票

要比较String对象的内容,应使用compareTo函数。

moreNum.compareTo(SENTINEL)如果相等则返回0。

==运算符用于检查它们是否引用相同的对象。

与添加步骤有关的另一个问题,如果还输入“否”,则应添加添加内容>


0
投票

使用

© www.soinside.com 2019 - 2024. All rights reserved.