首先,我是Java的新手,并试图完成学校创建自动售货机的作业。我的程序将2个文件用作cli参数,一个用于产品,另一个用于金钱。
为了我的一生,我无法弄清楚代码为什么挂在第42行上
(while (moneyTemp.hasNextLine());)
我尝试使用断点在eclipse上进行调试,并注意到代码永远不会超过这一行。将print语句放入while循环内,我没有得到输出,所以我知道它没有循环。
Java文档说hasNextLine可以阻止等待用户输入,但是由于我的源代码是文件,所以我不确定为什么会这样。请参阅下面的相关代码。
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class VendingMachine
{
static Scanner input = new Scanner (System.in);
public static void main(String[] args)
{
try
{
Scanner productTempFile = new Scanner(new File(args[0]));
Scanner moneyTemp = new Scanner(new File(args[1]));
int numProducts = 0; //Number of products to be loaded to the machines
int numMoney = 0; //Number of money objects to be loaded in the machine
while (productTempFile.hasNextLine()) //This block will get the number of products
{
numProducts++;
productTempFile.nextLine();
}
productTempFile.close();
Product[] invArray = new Product[numProducts];
Scanner myFile = new Scanner(new File(args[0]));
for(int i = 0; i < numProducts; i++) //This block populates the array of products
{
String inputLine = myFile.nextLine();
String[] lineArray = inputLine.split(",");
invArray[i] = new Product(lineArray[0], Double.valueOf(lineArray[1]), lineArray[2], lineArray[3],
Double.valueOf(lineArray[4]), Integer.valueOf(lineArray[5]));
}
myFile.close();
System.out.println("I'm here");
while (moneyTemp.hasNextLine()); //This block gets the number of different money items
{
numMoney++;
moneyTemp.nextLine();
}
以下是我提供的第二个文件,即arg [1],其格式与第一个起作用的格式相同。
货币,100美元的钞票,100.0,中,纸,0
货币,50美元的钞票,50.0,中,纸,0
PaperCurrency,20美元的钞票,20.0,中,纸,0
PaperCurrency,10美元的钞票,10.0,中,纸,4
纸币,5美元的钞票,5.0,中,纸,8
纸货币,1美元的钞票,100.0,中,纸,16
硬币货币,50分,0.5,大,金属,10
硬币货币,四分之一,0.25,中,金属,20
硬币货币,硬币,0.1,小,金属,30
硬币货币,镍,0.05,小,金属,40
硬币货币,一分钱,0.01,小,金属,50
任何帮助将不胜感激。谢谢
从行中删除分号
while (moneyTemp.hasNextLine());
Semicolom使while循环不做任何事情就完成其主体,这意味着它while(){}
在while条件为true时不执行任何操作,并且由于您的条件是hasNextLine()
它一次又一次地检查同一行,从而导致无限循环。
首先,我是java新手,正在尝试完成学校关于创建自动售货机的作业。我的程序接收两个文件作为cli参数,一个是产品,另一个是钱。 下面是我提供的ie Arg[1]的第二个文件,它的格式与第一个相同,工作。 任何帮助都将不胜感激。谢谢
我试图建立一个替代密码。对于我的密钥,我使用一个随机的256字节数组,它是256个可能字节值的排列。 这是通过以下方式设置的: 然后,我用以下方法对消息进行编码/解码: 在这个过程中,有些东西出了问题,我解码的任何东西都会作为一个 我不确定自己哪里出错了,也不确定这是否是最高效的做事方式,我必须保持相同的函数签名和通用方法,但实现细节由我决定。 感谢任何和所有的帮助。
问题内容: 我有一个包含以下内容的字符串: 我可以在Java中执行此字符串中的代码吗? 问题答案: 从Java 6开始,您 可以 使用SDK中的标准API 编译并运行定义为字符串或文件的Java 编译单元 (编译单元基本上是.java文件中的所有内容-包,导入,类/接口/枚举),看看这个例子。但是,您 不能 像问题中那样运行任意Java代码段。 如果可能的话,最好嵌入一种不同的脚本语言,该脚本语言
问题内容: codepad.org允许您在线运行C,C ++,D等代码,但不能运行Java …我可以使用Java的网站吗? 问题答案: 还有http://ideone.com/(支持多种语言)
我非常喜欢Gremlin,但我认为有时候很难将控制台的代码转换为Java代码,例如: 在控制台工作正常,但在Java不行。有人能帮我这个代码,或者给我一个好的未来地址吗?
问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代