我必须编写一个使用2个数组的程序。第一个数组存储5个花名,第2个数据存储每个花的价格。
用户将输入什么样的花和多少以及程序将输出成本。我无法以特定的成本输出特定花的相关成本。
我想使用5个if语句,但是花字符串有问题。有什么建议吗?
到目前为止,这是我的代码:
import java.util.Scanner;
public class FlowerCounter
{
public static void main(String[] args)
{
String[] flowers = new String[5];
double[] price = {.50, .75, 1.50, .50, .80};
Scanner keyboard = new Scanner(System.in);
System.out.println("What kind of flower would you " +
"like to purchase? \nPetunia, Pansy, Rose," +
" Violet, or Carnation?");
String index = keyboard.nextLine();
System.out.println("How many " + index +"s" + " would you like?");
int count = keyboard.nextInt();
double total = count * price.length;
System.out.println("The cost for " + count + index + " is " + total);
}
}
答案 0 :(得分:0)
根据您将值放入价格数组的方式,您必须按顺序放置花。
迭代鲜花的名称,当您找到与输入相匹配的花的特定索引时(记住:.equals()
而不是==
),返回该花的价格该指数的使用。
答案 1 :(得分:0)
我认为类似于Map<String, Double> flowers = new HashMap<String, Double>();
,然后可以很容易地与flowers.get(index)
核对以获得它的价值。
也值得检查以确保他们输入了有效的花卉名称。
答案 2 :(得分:0)
我的第一个建议是使用鲜花的名称初始化flowers
数组。
您可以为每个人手动执行此操作(例如flowers[0] = "Petunia";
),或者您可以像在一个步骤中执行价格数组一样(例如String[] flowers = {"Petunia", "Pansy","Rose","Violet","Carnation"};
)。
然后你需要找到flowers数组的哪个索引包含用户输入的花名。循环遍历flowers数组的每个索引,直到匹配(确保使用index.equals(flowers[testIndex])
,而不是==
运算符。)
最后将输入花卉名称的索引处的价格乘以得到总成本。
答案 3 :(得分:0)
您只是使用索引,而不是数组。
要访问花名,您必须使用如下的阵列花:
flower[index]
并获取价格:
price[index]
'index'是int而不是String。如果必须找到给定花的索引(位置),则必须迭代所有数组,直到找到它为止。
您可能想要使用地图而不是2个数组: http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html
使用地图,您可以使用花卉名称作为关键来访问花卉价格。
只需声明Map<String, Double> prices = new HashMap<String, Double>();
答案 4 :(得分:-3)
import java.util.Scanner;
public class FlowerCounter {
public static void main(String[] args)
{
String[] flowers = {"Petunia", "Pansy", "Rose", "Violet", "Carnation"};
double[] price = {.50, .75, 1.50, .50, .80};
double cost = 0;
Scanner keyboard = new Scanner(System.in);
System.out.println("What kind of flower would you " +
"like to purchase? \nPetunia, Pansy, Rose," +
" Violet, or Carnation?");
String index = keyboard.nextLine();
System.out.println("How many " + index +"s" + " would you like?");
int count = keyboard.nextInt();
if (index.equals("Petunia") || index.equals("petunia"))
cost = (double)price[0] * count;
else if (index.equals("Pansy") || index.equals("pansy"))
cost = (double)price[1] * count;
else if (index.equals("Rose") || index.equals("rose"))
cost = (double)price[2] * count;
else if (index.equals("Violet") || index.equals("violet"))
cost = (double)price[3] * count;
else if (index.equals("Carnation") || index.equals("carnation"))
cost = (double)price[4] * count;
else
System.out.println("wrong flower");
System.out.println("The cost for " + count+ " " + index + " is " + cost);
}
}