Java 在printf行上找不到符号
对这个错误做了一些研究,大多数看起来都很简单。我检查了一下是否有拼写错误,但没有发现任何错误。我试着用printf打印几行。当我去编译这段代码时,它会给我一个“找不到符号错误”。这些行所需要的方法可能是定义变量的方法吗?这个错误只在我的printSales方法中出现。这不是成品,所以我可能会缺一两块。但这是我的代码,任何帮助都将不胜感激Java 在printf行上找不到符号,java,Java,对这个错误做了一些研究,大多数看起来都很简单。我检查了一下是否有拼写错误,但没有发现任何错误。我试着用printf打印几行。当我去编译这段代码时,它会给我一个“找不到符号错误”。这些行所需要的方法可能是定义变量的方法吗?这个错误只在我的printSales方法中出现。这不是成品,所以我可能会缺一两块。但这是我的代码,任何帮助都将不胜感激 import java.util.Scanner; public class Sales { public static void main( St
import java.util.Scanner;
public class Sales
{
public static void main( String[] args)
{
Scanner input = new Scanner (System.in);
System.out.print("Please enter a product number.");
double product1 = 0;
double product2 = 0;
double product3 = 0;
double product4 = 0;
double product5 = 0;
double sale;
int userInput = input.nextInt();
while(userInput != 0)
{
if(userInput >= 1 && userInput <= 5)
{
switch(userInput)
{
case 1: System.out.println("");
product1 ++;
sale += 2.98;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
case 2: System.out.println("");
product2 ++;
sale += 4.50;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
case 3: System.out.println("");
product3 ++;
sale += 9.98;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
case 4: System.out.println("");
product4 ++;
sale += 4.49;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
case 5:System.out.println("");
product5 ++;
sale += 6.87;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
}//end switch
} //end if
else if (userInput != 0)
bSystem.out.println("ERROR: Incorrect Product Number, Please Try Again");
System.out.print("");
userInput = input.nextInt();
}//end while
} //end main
public void printSales()
{
System.out.println();
System.out.printf("Product 1: $%.2f\n", product1);
System.out.printf("Product 2: $%.2f\n", product2);
System.out.printf("Product 3: $%.2f\n", product3);
System.out.printf("Product 4: $%.2f\n", product4);
System.out.printf("Product 5: $%.2f\n", product5);
} //end printSales
} //end class
import java.util.Scanner;
公务舱销售
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
系统输出打印(“请输入产品编号”);
双乘积1=0;
双乘积2=0;
双乘积3=0;
双乘积4=0;
双乘积5=0;
双重销售;
int userInput=input.nextInt();
while(userInput!=0)
{
如果(userInput>=1&&userInput这是变量范围的问题。您不能在另一个方法中引用一个方法中的变量。请尝试重新定义printSales:
public void printSales(int product1, int product2, int product3, int product4, int product5)
{
System.out.println();
System.out.printf("Product 1: $%.2f\n", product1);
System.out.printf("Product 2: $%.2f\n", product2);
System.out.printf("Product 3: $%.2f\n", product3);
System.out.printf("Product 4: $%.2f\n", product4);
System.out.printf("Product 5: $%.2f\n", product5);
} //end printSales
当然,你必须改变你对printSales的称呼(我知道你现在不打电话,但也许你将来会这么称呼它):
确保product1、product2等都在同一个“作用域”中--您不能进入另一个方法,也不能进入if{}或for{}或while{}块来引用变量。这是变量作用域的问题。您不能在另一个方法中引用一个方法中的变量。请尝试重新定义printSales:
public void printSales(int product1, int product2, int product3, int product4, int product5)
{
System.out.println();
System.out.printf("Product 1: $%.2f\n", product1);
System.out.printf("Product 2: $%.2f\n", product2);
System.out.printf("Product 3: $%.2f\n", product3);
System.out.printf("Product 4: $%.2f\n", product4);
System.out.printf("Product 5: $%.2f\n", product5);
} //end printSales
当然,你必须改变你对printSales的称呼(我知道你现在不打电话,但也许你将来会这么称呼它):
确保product1、product2等都在同一个“作用域”中--您不能进入另一个方法,也不能进入if{}或for{}或while{}块来引用变量。这是变量作用域的问题。您不能在另一个方法中引用一个方法中的变量。请尝试重新定义printSales:
public void printSales(int product1, int product2, int product3, int product4, int product5)
{
System.out.println();
System.out.printf("Product 1: $%.2f\n", product1);
System.out.printf("Product 2: $%.2f\n", product2);
System.out.printf("Product 3: $%.2f\n", product3);
System.out.printf("Product 4: $%.2f\n", product4);
System.out.printf("Product 5: $%.2f\n", product5);
} //end printSales
当然,你必须改变你对printSales的称呼(我知道你现在不打电话,但也许你将来会这么称呼它):
确保product1、product2等都在同一个“作用域”中--您不能进入另一个方法,也不能进入if{}或for{}或while{}块来引用变量。这是变量作用域的问题。您不能在另一个方法中引用一个方法中的变量。请尝试重新定义printSales:
public void printSales(int product1, int product2, int product3, int product4, int product5)
{
System.out.println();
System.out.printf("Product 1: $%.2f\n", product1);
System.out.printf("Product 2: $%.2f\n", product2);
System.out.printf("Product 3: $%.2f\n", product3);
System.out.printf("Product 4: $%.2f\n", product4);
System.out.printf("Product 5: $%.2f\n", product5);
} //end printSales
当然,你必须改变你对printSales的称呼(我知道你现在不打电话,但也许你将来会这么称呼它):
确保product1、product2等都在同一个“作用域”中--您不能进入另一个方法,也不能进入if{}或for{}或while{}块来引用变量。有四个问题
1.
销售可能未初始化
您将sale
变量声明为
double sale;
作为局部变量,它没有默认值,因此执行类似于sale+=2.98
的操作会产生未定义的结果
简单地将变量初始化为默认值/起始值
double sale = 0d;
2.
包B系统不存在
B系统.out.println(“错误:产品编号不正确,请重试”)
输入错误,应该是System.out.println
;)
3.
错误:找不到符号
System.out.printf(“产品1:$%.2f\n”,产品1)
值product1
、product2
、product3
、product4
和product5
在printSales
中没有意义,因为它们仅在main
中声明为局部变量
通常情况下,我建议创建这些实例变量,但由于您在main
的static
上下文中运行,这将不起作用。相反,请修改printSales
方法以获取参数
public void printSales(double product1, double product2, double product3, double product4, double product5) {
...
}
4.
您应该会收到许多关于“无法访问语句”的警告,这是由于您
将从
switch`语句中断开,但试图在它之后执行代码
case 1:
System.out.println("");
product1++;
sale += 2.98;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
^--- These can't be executed, because of the break before it...
相反,请尝试在break
语句之前移动代码
case 1:
System.out.println("");
product1++;
sale += 2.98;
System.out.print("How many were sold?");
userInput = input.nextInt();
break;
您可能想看一看,并了解更多详细信息四个问题
1.
销售可能未初始化
您将sale
变量声明为
double sale;
作为局部变量,它没有默认值,因此执行类似于sale+=2.98
的操作会产生未定义的结果
简单地将变量初始化为默认值/起始值
double sale = 0d;
2.
包B系统不存在
B系统.out.println(“错误:产品编号不正确,请重试”)
输入错误,应该是System.out.println
;)
3.
错误:找不到符号
System.out.printf(“产品1:$%.2f\n”,产品1)
值product1
、product2
、product3
、product4
和product5
在printSales
中没有意义,因为它们仅在main
中声明为局部变量
通常情况下,我建议创建这些实例变量,但由于您在main
的static
上下文中运行,这将不起作用。相反,请修改printSales
方法以获取参数
public void printSales(double product1, double product2, double product3, double product4, double product5) {
...
}
4.
您应该会收到许多关于“无法访问语句”的警告,这是由于您
将从
switch`语句中断开,但试图在它之后执行代码
case 1:
System.out.println("");
product1++;
sale += 2.98;
break;
System.out.print("How many were sold?");
userInput = input.nextInt();
^--- These can't be executed, because of the break before it...
相反,请尝试在break
语句之前移动代码
case 1:
System.out.println("");
product1++;
sale += 2.98;
System.out.print("How many were sold?");
userInput = input.nextInt();
break;
您可能想看一看,并了解更多详细信息四个问题
1.
销售可能未初始化
你申报