Java 方法和数组
这是我的密码:Java 方法和数组,java,arrays,Java,Arrays,这是我的密码: import java.util.*; import java.text.*; public class zadanko4 { int ile; public static final int vat8 = 8; public static final int vat23 = 23; public static final int vat5 = 5; //deklaracje zmiennych tablicowych st
import java.util.*;
import java.text.*;
public class zadanko4
{
int ile;
public static final int vat8 = 8;
public static final int vat23 = 23;
public static final int vat5 = 5;
//deklaracje zmiennych tablicowych
static double[] price;
static String[] name;
static int[] quantity;
static int[] vat;
//tworzenie tablic
price = new double[ile];
name = new String[ile];
quantity = new int[ile];
vat = new int[ile];
public static void printSellerData(String tekst)
{
System.out.print(tekst);
}
public static void printBuyerData(String company, String taxNo, String phone, String email)
{
System.out.print(company + taxNo + phone + email);
}
public static void printInvoiceDate(Date data)
{
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.print(dateFormat.format(data));
}
public static void printInvoiceHeader(String naglowek)
{
System.out.print(naglowek);
}
public static void printInvoiceProduct(String name, int quantity, double price, int vat)
{
System.out.printf(name + quantity + price + vat);
}
public static void readProductsData()
{
//uzytkownik wprowadza liczbe produktow
System.out.println("podaj liczbe produktow");
Scanner scanner = new Scanner(System. in );
ile = scanner.nextInt();
}
public static void main(String[] args)
{
int i;
String line;
for (i = 0; i < ile; i++)
{
System.out.print("Podaj cene produktu nr " + (i + 1) + ": ");
price[i] = scanner.nextDouble();
System.out.print("Podaj nazwe produktu nr " + (i + 1) + ": ");
name[i] = scanner.next();
System.out.print("Podaj ilosc produktu nr " + (i + 1) + ": ");
quantity[i] = scanner.nextInt();
System.out.print("Podaj vat produktu nr " + (i + 1) + ": ");
vat[i] = scanner.nextInt();
System.out.printf("Dane sprzedajacego\n");
printSellerData("Company: MaxDom Ltd, Kochanowskiego 17, 31-782 Krakow, Poland\n");
printSellerData("Tax no: 677-000-21-39\n");
printSellerData("Phone: +48123454943\n");
printSellerData("Email: office@maxdom.pl\n\n");
System.out.printf("Dane kupujacego\n");
printBuyerData("Softpol Ltd, Mickiewicza 5, 31-009 Krakow, Poland\n", "342-909-33-12\n", "+48505392100\n", "office@softpol.eu\n");
// printInvoiceNumber(+numer+);
Date data = new Date();
printInvoiceDate(data);
printInvoiceHeader("|No.|Product desciptrion |Quantity |Unit price |Total |VAT rate |VAT |Gross|");
printInvoiceHeader("|______________________________________________________________________________________________________|");
//printInvoiceProduct("name[i]", ilosc[prod], cena[prod], vat[prod]");
printInvoiceProduct("|" + (i + 1) + " |" + name[i] + " |" + quantity[i] + " |" + price[i] + " |" + (quantity[i] * price[i]) + " |" + (vat[i] / 100.0) + " |" + (quantity[i] * price[i] * (vat[i] / 100.0)) + " |" + (quantity[i] * price[i]) * (1 + (vat[i] / 100.0)));
}
}
}
我的问题是:
我有4个错误,比如:error:expected。它是连通的
使用数组,但我不知道出了什么问题
最后一行:printInvoiceProduct。。。。我想显示用户输入的1个产品,但不显示任何内容
为什么呢
在引用阵列时为阵列创建新的内存地址。喜欢
静态双精度[]价格=新双精度[ile]
这还不够,因为这些静态数组试图对非静态变量ile进行静态引用。因此,如果希望数组是静态的,只需将ile设置为静态即可
printInvoiceProduct方法声明为向其传递4个参数,但您仅通过一个String对象调用了它
即使您解决了编译错误,您也将再次面临问题。 例如,您正在创建一个大小为零的数组,这将失败。因此,不要在上面创建数组对象;在知道数组大小后在主函数中创建。 所以去掉ile变量。在main中获取输入,然后实例化所有数组。 即使我不认为需要类级数组,它们都可以是本地方法 除此之外,我认为这不是解决此类问题的正确平台。考虑你的问题在
好的开始是正确格式化代码…显示错误将非常好。ile没有价值,因此数组创建将失败。但我们可以有更多的机会this@MightyPork格式设置完成。需要了解您想要的内容。谢谢帮助。如何使ile静态?类似这样的东西:price=newstaticdouble[ile]?我得不到第三分。你所说的一个斯特林物体是什么意思?哪一个?对不起,我不是个傻瓜。我没有粘贴完整的代码,但我有类似的东西:System.out.printlenternumber of products;Scanner Scanner=新ScannerSystem.in;ile=scanner.nextInt;所有这些都会使数组变大,但这不会有帮助,因为在创建数组时,会计算值ile,而您在类级别执行此操作。