[英]Cycling through an array
我正在尝试为用户设置一种输入方法,以便为每种树类型输入许多树种子。 有三种不同的树类型。 我只想让用户输入我在此方法中创建的所有这三个方法的金额,如果他们输入无效的条目(空字符串或字符串或数字<0),则会出现错误。
我的“ for”循环在这里合适吗? 我想增加desirableYield数组和treeTypes数组的数量,以便这些值是平行的。 在程序的后面,我需要计算种子死亡所需的树木数量。
任何建议都会有所帮助。
import javax.swing.JOptionPane;
public class TreeCalc{
public static void main(String[] args){
String[] treeTypes = new String[] {"Fir", "Pine", "Spruce"};
int[] desiredYield = new int [treeTypes.length];
double[] decayRate = new double[] {0.07, 0.12, 0.08};
desiredYield[] = getYield();
getCalculate(decayRate[], treeTypes[], desiredYield[]);
printMessage();
}
//Asks user to input # of trees for each tree type
public static int getYield(){
int index= 0;
do{
for(int i=0;i<=treeTypes.length;i++){
try{
desiredYield[index] = Integer.parseInt(JOptionPane.showInputDialog("Please enter your desired yield for: " +treeTypes[i]));
}catch(NumberFormatException e){
if(desiredYield[index]==("") || desiredYield[index]<0){
JOptionPane.showMessageDialog(null, "Error: Please enter your desired yield for "+treeTypes[i]);
}else{
index++
}
}
}
}while(desiredYield[index]<0 || desiredYield[index]==(""));
}
}
for(int i=0;i<=treeTypes.length;i++){
try{
desiredYield[index] = Integer.parseInt(JOptionPane.showInputDialog("Please enter your desired yield for: " +treeTypes[i]));
}catch(NumberFormatException e){
if(desiredYield[index]==("") || desiredYield[index]<0){
JOptionPane.showMessageDialog(null, "Error: Please enter your desired yield for "+treeTypes[i]);
}else{
index++
}
}
您需要从for循环中删除“ =”。
更新的代码应为:
for(int i=0;i < treeTypes.length;i++){
try{
desiredYield[index] = Integer.parseInt(JOptionPane.showInputDialog("Please enter your desired yield for: " +treeTypes[i]));
}catch(NumberFormatException e){
if(desiredYield[index]==("") || desiredYield[index]<0){
JOptionPane.showMessageDialog(null, "Error: Please enter your desired yield for "+treeTypes[i]);
}else{
index++
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.