Java &引用;应在“或”之前声明类或接口;“无效”&引用;
我正在完成这个java程序,错误消息“在“void”或之前需要类或接口声明”很难解决。这让人困惑,因为我之前有两个调用的相同“publicstaticvoid”设置。我不认为这是因为调用在main方法之外。我错过了什么?我的工作如下Java &引用;应在“或”之前声明类或接口;“无效”&引用;,java,Java,我正在完成这个java程序,错误消息“在“void”或之前需要类或接口声明”很难解决。这让人困惑,因为我之前有两个调用的相同“publicstaticvoid”设置。我不认为这是因为调用在main方法之外。我错过了什么?我的工作如下 import java.util.Scanner; //needed for input public class Holidaycharitydonations { static double[] cashDonations = new
import java.util.Scanner; //needed for input
public class Holidaycharitydonations {
static double[] cashDonations = new double[6];
static double[] lbsFood = new double[6];
static String[] siteName = new String[6];
static String bestSiteCash = " ";
static String bestSiteFood = " ";
static double totalCash = 0;
static double totalFood = 0;
static double maxFood = 0;
static double maxCash = 0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String runAgain = "yes"; //use runAgain
do {
getDonations();
processDonations();
displayDonations();
System.out.print("Enter yes if you want to run again: ");
runAgain = input.next();
input.nextLine();
System.out.print("\n\n\n");
} while (runAgain.equalsIgnoreCase("yes"));
} // end of main
public static void getDonations() {
Scanner input = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
System.out.println("Enter site " + (i + 1) + " name: ");
siteName[i] = input.next();
input.nextLine();//fixes skipping issue
System.out.println("Enter cash donation(USD) for" + siteName[i] + ": ");
cashDonations[i] = input.nextDouble();
while (cashDonations[i] < 1 )
{
System.out.println("SORRY - must be greater than 1 USD");
System.out.print("Enter cash donation(USD) for " + siteName[i] + ": ");
cashDonations[i] = input.nextDouble();
}
System.out.println("Enter food donation(lbs.) for " + siteName[i] + ": ");
lbsFood[i] = input.nextDouble();
while (lbsFood[i] < 1)
{
System.out.println("SORRY - must be greater than 1lb");
System.out.println("Enter food donation(lbs.) for " + siteName[i] + ": ");
lbsFood[i] = input.nextDouble();
}
}
}
public static void processDonations() {
totalCash = 0;
totalFood = 0;
maxCash = cashDonations[0];
maxFood = lbsFood[0];
for (int i = 1; i < 6; i++)
{
if (cashDonations[i] > maxCash)
{
maxCash = cashDonations[i];
bestSiteCash = siteName[i];
}
if (lbsFood[i] > maxFood)
{
maxFood = lbsFood[i];
bestSiteFood = siteName[i];
}
}//End of for loop
for (int i = 0; i < 6; i++)
totalCash = totalCash + cashDonations[i];
totalFood = totalFood + lbsFood[i];
}
}//end of processDonations
public static void displayDonations() {
System.out.println("\n\n\n");
System.out.println("\tHOLIDAY DONATION LOCATIONS REPORT\t");
System.out.println("\t---------------------------------\t");
System.out.println("\n\n\n");
for (int i = 0; i < 6; i++)
{
System.out.print("Site:" + siteName[i]);
System.out.print("Individual Cash Donations: $" + cashDonations[i]);
System.out.print("Individual Food Donations:" + lbsFood[i]+ "lbs" );
System.out.print("\n");
}//End of for loop
System.out.print("\tHoliday Donation Totals Report\t");
System.out.println("\t----------------------------\t");
System.out.println("Total Cash Donations are $" + totalCash );
System.out.println("Total Food Donations are " + totalFood + "lbs" );
System.out.println("\n");
System.out.println("\tHoliday Donation Best Site Report\t");
System.out.println("\t---------------------------------\t");
System.out.println("\n");
System.out.println("Best location site for cash donation:" + bestSiteCash );
System.out.println("Max cash collected was:" + maxCash );
System.out.println("\n");
System.out.println("Best location site for food donation:" + bestSiteFood );
System.out.println("Max food collected was:" + maxFood );
}// end of displayDonations()
}// end of class
import java.util.Scanner//需要输入
公共假期慈善捐款{
静态双精度[]现金捐赠=新双精度[6];
静态双精度[]lbsFood=新双精度[6];
静态字符串[]siteName=新字符串[6];
静态字符串bestSiteCash=“”;
静态字符串bestSiteFood=“”;
静态双重合计现金=0;
静态双总食物=0;
静态双maxFood=0;
静态双maxCash=0;
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
String runreach=“yes”//使用runreach
做{
获取捐赠();
处理捐赠();
显示捐赠();
System.out.print(“如果要再次运行,请输入yes:”;
runreach=input.next();
input.nextLine();
系统输出打印(“\n\n\n”);
}while(runreach.equalsIgnoreCase(“yes”);
}//主管道末端
公共静态无效{
扫描仪输入=新扫描仪(System.in);
对于(int i=0;i<6;i++){
System.out.println(“输入站点”+(i+1)+“名称”);
siteName[i]=input.next();
input.nextLine();//修复了跳过问题
System.out.println(“为“+siteName[i]+”:”输入现金捐赠(USD);
现金捐赠[i]=input.nextDouble();
而(现金捐赠[i]<1)
{
System.out.println(“对不起-必须大于1美元”);
System.out.print(“输入现金捐赠(USD)作为“+siteName[i]+”:”;
现金捐赠[i]=input.nextDouble();
}
System.out.println(“为“+siteName[i]+”:”输入食物捐赠(lbs.);
lbsFood[i]=input.nextDouble();
while(lbsFood[i]<1)
{
System.out.println(“对不起-必须大于1lb”);
System.out.println(“为“+siteName[i]+”:”输入食物捐赠(lbs.);
lbsFood[i]=input.nextDouble();
}
}
}
公共静态无效进程(){
现金总额=0;
食物总量=0;
maxCash=现金捐赠[0];
maxFood=lbsFood[0];
对于(int i=1;i<6;i++)
{
if(现金捐赠[i]>maxCash)
{
maxCash=现金捐赠[i];
bestSiteCash=站点名称[i];
}
如果(lbsFood[i]>maxFood)
{
maxFood=lbsFood[i];
bestSiteFood=站点名称[i];
}
}//循环结束
对于(int i=0;i<6;i++)
现金总额=现金总额+现金捐赠[i];
totalFood=totalFood+lbsFood[i];
}
}//捐款结束
公共静态无效{
System.out.println(“\n\n\n”);
System.out.println(“\t日历捐赠地点报告\t”);
System.out.println(“\t-------------------\t”);
System.out.println(“\n\n\n”);
对于(int i=0;i<6;i++)
{
系统输出打印(“站点:+siteName[i]);
系统输出打印(“个人现金捐赠:$”+现金捐赠[i]);
系统输出打印(“个人食品捐赠:+lbsFood[i]+lbs”);
系统输出打印(“\n”);
}//循环结束
System.out.print(“\t日历捐赠总额报告”\t”);
System.out.println(“\t------------------\t”);
System.out.println(“现金捐赠总额为$”+现金总额);
System.out.println(“食品捐赠总额为”+totalFood+“磅”);
System.out.println(“\n”);
System.out.println(“\t日历捐赠最佳站点报告\t”);
System.out.println(“\t-------------------\t”);
System.out.println(“\n”);
System.out.println(“现金捐赠的最佳地点:“+bestSiteCash”);
System.out.println(“收取的最大现金为:+maxCash”);
System.out.println(“\n”);
System.out.println(“食品捐赠的最佳地点:“+bestSiteFood”);
System.out.println(“收集的最大食物量为:+maxFood”);
}//完()
}//下课
这里,在for循环声明之后,您错过了{
...
for (int i = 0; i < 6; i++)
totalCash = totalCash + cashDonations[i];
totalFood = totalFood + lbsFood[i];
}
}//end of processDonations
。。。
对于(int i=0;i<6;i++)
现金总额=现金总额+现金捐赠[i];
totalFood=totalFood+lbsFood[i];
}
}//捐款结束
应该是
...
for (int i = 0; i < 6; i++) {
totalCash = totalCash + cashDonations[i];
totalFood = totalFood + lbsFood[i];
}
}//end of processDonations
。。。
对于(int i=0;i<6;i++){
现金总额=现金总额+现金捐赠[i];
totalFood=totalFood+lbsFood[i];
}
}//捐款结束
编译器究竟在哪里向您发出此错误消息?你的代码是哪一行?而且,你的缩进是可怕的。你可能有不匹配的大括号,但这几乎是不可能的。你的IDE到底在哪里?