#java
#java
Вопрос:
Итак, я создал код для получения статистики персонажей игры, но он всегда показывает мне две ошибки. Что я делаю не так? Любая помощь была бы высоко оценена, потому что я новичок в этих командах. Заранее спасибо.
Вот часть кода:
public static void ShowStats(String Name, int Level, int Health, int ArrowCount, int Slots, int SlotsFilled, boolean hasJob, boolean hasEquipment, boolean hasMagicBook, String Jobs[], String JobLevels[], String Equipments[], String Crystals[], boolean isSoulBonded[], boolean isArrow[], int JobCount, int EquipmentCount)
{
int i;
System.out.println("Name: " Name);
System.out.println("Level: " Level);
System.out.println("Health: " Health);
if(hasJob)
{
System.out.println("Jobs:");
for(i=0;i<JobCount;i )
System.out.println(Jobs[i] " job at level " JobLevels[i] ".");
}
if(hasEquipment)
{
System.out.println("Equipments:");
for(i=0;i<EquipmentCount;i )
{
if(isArrow[i])
{
System.out.println(ArrowCount " " Equipments[i]);
continue;
}
if(isSoulBonded[i])
{
System.out.println(Equipments[i] " (Soul Bonded)");
continue;
}
System.out.println(Equipments[i]);
}
}
if(hasMagicBook)
{
System.out.println("Magic Book has " SlotsFilled "/" Slots " Crystals");
System.out.println("Crystals:");
for(i=0;i<SlotsFilled;i )
System.out.println(Crystals[i]);
}
}
public static void GetStats(int c)
{
String n="";
int l=0,h=0,ac=0,s=0,sf=0,jc=0,ec=0;
boolean hj=false,he=false,mb=false;
if(c==0)
{
n="TestChar";
l=1;
h=52;
hj=true;
jc=3;
String j[]={"Fighter","Mage","Alchemist"};
String jl[]={"Neophyte","Neophyte","Neophyte"};
he=true;
ec=6;
String e[]={"Armor","Trousers","Boots","Dagger","Magic Book Lvl 1","Bag"};
boolean sb[]={false,false,false,false,false,false};
boolean a[]={false,false,false,false,false,false};
mb=true;
}
else if(c==1)
{
n="TestChar2";
l=5;
h=68;
hj=true;
jc=2;
String j[]={"Fighter","Mage"};
String jl[]={"Apprentice","Apprentice"};
he=true;
ec=6;
String e[]={"Armor","Leather Trousers","Leather Boots","Sword","Magic Book Lvl 2","Bag"};
boolean sb[]={true,false,false,false,false,false};
boolean a[]={false,false,false,false,false,false};
mb=true;
}
else
{
String j[]={"","",""};
String jl[]={"","",""};
String e[]={"","","","","","","",""};
String cf[] ={"","","","",""};
boolean sb[]={false,false,false,false,false,false,false,false};
boolean a[]={false,false,false,false,false,false,false,false};
}
ShowStats(n,l,h,ac,s,sf,hj,he,mb,j[],jl[],e[],c[],sb[],a[],jc,ec);
}
Компилятор показывает, что ShowStats(n,l,h,ac,s,sf,hj,he,mb,j[],jl[],e[],c[],sb[],a[],jc,ec);
выдает ошибку, но почему? Я бы очень хотел, если бы я получил какую-либо помощь, и я немного новичок в этом, поэтому любое объяснение в также действительно приветствуется.
Комментарии:
1. В чем ошибка? Пожалуйста, покажите обратную трассировку.
2. Я не вижу
new
… и ваш методvoid
.3. Вы столкнулись с проблемой, поскольку переменные вашего массива, начинающиеся с j [], jl [], e [], c [], sb [], a [], недоступны вызывающей функции. Чтобы исправить, создайте их в заголовке функции и манипулируйте условиями по мере необходимости.
Ответ №1:
Измените объявления вашего массива и назначение, например, для строки[] j, вы можете сделать то же самое и для других.
public static void GetStats(int c)
{
String n="";
int l=0,h=0,ac=0,s=0,sf=0,jc=0,ec=0;
boolean hj=false,he=false,mb=false;
String[] j;
if(c==0)
{
j[0]="Fighter";
j[1] ="Mage";
j[2]= "Alchemist";
}
else if(c==1)
{
j[0]="Fighter";
j[1] = "Mage";
} ...