我正在尝试使用while语句以及使用扫描程序在Java中创建货币转换器。我以为我已经设置了但是它说int不能转换为我的变量(meme)而且变量(meme)不能转换为int。
import java.util.Scanner;
public class MemeRunner
{
public static void main (String[] args)
{
int currency;
Scanner sc =new Scanner(System.in);
Meme m = sc.nextInt();
System.out.println("Welcome to Currency Converter! ");
System.out.print("Enter your currency ");
while(currency >= 0)
{
System.out.println(currency);
currency = sc.nextInt(m);
}
System.out.println("Change Maker Program");
Meme coin = new Meme(99);
System.out.println(coin);
Meme change = new Meme(41);
System.out.println(change);
Meme money = new Meme(33);
System.out.println(money);
}
}
这是我的公共课。第一个是跑步者。也许这会提供更多信息。
public class Meme
{
private int totalCents;
public Meme()
{
totalCents = 0;
}
public Meme(int cents)
{
totalCents = cents;
}
public int getDollars ()
{
int dollars;
dollars = totalCents / 100;
totalCents = totalCents % 100;
return dollars;
}
public int getQuarters ()
{
int quarters;
quarters = totalCents / 25;
totalCents = totalCents % 25;
return quarters;
}
public int getDimes ()
{
int dimes;
dimes = totalCents / 10;
totalCents = totalCents % 10;
return dimes;
}
public int getNickels ()
{
int nickels;
nickels = totalCents / 5;
totalCents = totalCents % 5;
return nickels;
}
public int getPennies ()
{
int pennies;
pennies = totalCents;
return pennies;
}
public String toString()
{
String result = "Total Currency: " + totalCents + "\n ";
result += "Dollars: " + getDollars() + "\n ";
result += "Quarters: " + getQuarters() + "\n ";
result += "Dimes: " + getDimes() + "\n ";
result += "Nickels: " + getNickels() + "\n ";
result += "Pennies: " + getPennies() + "\n ";
return result;
}
}
答案 0 :(得分:0)
您的Meme
类有一个构造函数,它接受一个int。所以你应该能够做到:
Meme m = new Meme(sc.nextInt());
此对象m
需要被视为对象。因此,你不能像int一样使用它。所以你不能做currency = sc.nextInt(m);
,并且必须用以下内容替换它:
currency = sc.nextInt(m.getValue()); // replace getValue() with whatever the name of your method is
旁注(编辑Meme
课程后):您的get...
似乎缺乏一致性。所有这些都会减少totalCents
的数量,除了 getPennies,它会保留调用前后的数量。我不知道这是否是所希望的行为,但我不相信,因为这意味着调用toString
方法只会减少totalCents
中仅用于打印的金额。