Java编程时,程序不会将扫描器传递到while循环中

Java编程时,程序不会将扫描器传递到while循环中,java,Java,好吧,我觉得这可能很难解释,因为我是班上唯一一个有这个问题的人,但基本上我现在正在学习Java编程。我有一个问题,基本上我必须扫描一个变量的值,然后将该变量放入while循环,问题是程序启动时,不会启动while循环。它让我继续输入数字,但这就是问题所在,它一直扫描数字,但只需要扫描一次,它不会进入循环。 这是节目 import java.util.Scanner; public class Week05_NelsonPimentel_Assignment { public static

好吧,我觉得这可能很难解释,因为我是班上唯一一个有这个问题的人,但基本上我现在正在学习Java编程。我有一个问题,基本上我必须扫描一个变量的值,然后将该变量放入while循环,问题是程序启动时,不会启动while循环。它让我继续输入数字,但这就是问题所在,它一直扫描数字,但只需要扫描一次,它不会进入循环。 这是节目

import java.util.Scanner;
public class Week05_NelsonPimentel_Assignment {
    public static void main(String args[]){
        int veraq;
        int times = 0;
        Scanner input = new Scanner(System.in);


        System.out.println("Please enter how many coins you have");

        veraq = input.nextInt();
        while(veraq>0){


            firstmachine(veraq);
            howmanytimesplayed(times);
            secondmachine(veraq);
            howmanytimesplayed(times);
            thirdmachine(veraq);
            howmanytimesplayed(times);

        }


            System.out.println("You were able to play this many times before running out of quarters: " +times);



        }





    static int howmanytimesplayed(int times)
    {
        times++;
        return times;
    }

    static int firstmachine(int veraq)
    {
        int times = 0;


        if(times == 33){
            veraq = veraq + 24;
            times = 0;
            System.out.println("Congradulations! On machine number one you have won $6.25!! You have this many coins left: " +veraq);
            return veraq;
        }
        else if( times != 33)
        {
            veraq = veraq - 1;
            times++;
            return veraq;
        }
        return 0;
    }

    static int secondmachine(int veraq)
    {
        int times = 0;

        if(times == 99){
            veraq = veraq + 74;

            times = 0;
            System.out.println("Congradulations! On machine number two you have won $18.75!! You have this many coins left: " +veraq);
            return veraq;
        }
        else if( times != 99)
        {
            veraq = veraq - 1;
            times++;
            return veraq;
        }

        return 0;
    }


    static int thirdmachine(int veraq)
    {
    int times = 0;

        if(times == 9){
            veraq = veraq + 6;
            times = 0;**enter code here**
            System.out.println("Congradulations! On machine number three you have won $1.75!! You have this many coins left: " +veraq);
            return veraq;
        }
        else if( times != 9)
        {
            veraq = veraq - 1;
            times++;
            return veraq;
        }
        return 0;
    }
}

您的程序不会不断扫描数字,程序中的while循环永远不会终止,即它在无限循环中运行

“int”是Java中的一种基本数据类型。当您调用方法
firstmachine(veraq)时
并使此方法对变量veraq执行一些操作,这些更改不会反映在main方法范围内的veraq变量上。因此,如果您为veraq传递一个正值,它基本上永远不会小于0,并且while循环将永远运行。此外,您的程序是以这样一种方式编写的,即不会打印任何内容,从而使您产生程序不断扫描数字的错觉


您应该了解什么是按值调用,什么是按引用调用。然后,您应该了解这些概念与在Java中将参数传递给方法的关系。祝您好运:)

看起来,如果您输入的数字大于0,您将进入一个无限循环。您当前看到的文本输出(即打印消息)是什么?您应该了解什么是按值调用,什么是按引用调用。然后,您应该了解这些概念与在Java中向方法传递参数的关系