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