#java #debugging #linked-list #compiler-errors
#java #отладка #связанный список #ошибки компилятора
Вопрос:
Я не уверен, связано ли это с тем, что я не спал, или потому, что я никогда не сталкивался с этим раньше, но я понятия не имею, что означает эта ошибка. Я пытаюсь скомпилировать программу, которая взаимодействует с двусвязным списком, используя пользовательский объект, и компилятор продолжает сообщать мне следующее:
19 errors found:
File: Z:CS121Project 6prog6.java [line: 127]
Error: Z:CS121Project 6prog6.java:127: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 130]
Error: Z:CS121Project 6prog6.java:130: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 134]
Error: Z:CS121Project 6prog6.java:134: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 136]
Error: Z:CS121Project 6prog6.java:136: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 138]
Error: Z:CS121Project 6prog6.java:138: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 140]
Error: Z:CS121Project 6prog6.java:140: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 143]
Error: Z:CS121Project 6prog6.java:143: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 144]
Error: Z:CS121Project 6prog6.java:144: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 145]
Error: Z:CS121Project 6prog6.java:145: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 146]
Error: Z:CS121Project 6prog6.java:146: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 149]
Error: Z:CS121Project 6prog6.java:149: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 151]
Error: Z:CS121Project 6prog6.java:151: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 156]
Error: Z:CS121Project 6prog6.java:156: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 158]
Error: Z:CS121Project 6prog6.java:158: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 160]
Error: Z:CS121Project 6prog6.java:160: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 161]
Error: Z:CS121Project 6prog6.java:161: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 165]
Error: Z:CS121Project 6prog6.java:165: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 166]
Error: Z:CS121Project 6prog6.java:166: class, interface, or enum expected
File: Z:CS121Project 6prog6.java [line: 169]
Error: Z:CS121Project 6prog6.java:169: class, interface, or enum expected
Это мой код:
import java.util.LinkedList;
import java.util.ListIterator;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
class prog6 {
public static void main(String args[]) throws FileNotFoundException
{
Scanner kb=new Scanner(System.in);
String tempName, keyName;
Product tempProduct, temp;
double tempPrice;
boolean found;
/* Here, add code to delcare and/or create a linked list
and, if necessary, an iterator.
*/
LinkedList<Product> list = new LinkedList<Product>();
ListIterator<Product> iter = list.listIterator();
//the following code reads product data from the file data.txt
//and saves the product data in the linked list
Scanner infile=new Scanner(new File("data.txt"));
while(infile.hasNextLine())
{
tempProduct=tempProduct.addFirst(infile.nextLine(), infile.nextDouble());
infile.nextLine(); //skip end-of-line
/*here, add code to add the object tempProduct
to the beginning of the linked list*/
}
infile.close();
while(true)
{
System.out.println();
System.out.println();
//show prompt messages and menu
System.out.println("Please select one of the follwing actions:");
System.out.println("q - Quit");
System.out.println("a - print the product list");
System.out.println("b - add a product");
System.out.println("c - enter a product name to find the product record");
System.out.println("d - delete a product");
System.out.println("Please enter q, a, b, c, or d:");
String selection=kb.nextLine(); //read user's selection
if (selection.equals("")) continue; //if selection is "", show menu again
switch (selection.charAt(0))
{
case 'q':
System.out.println("Thank you");
return;
/*write code for the cases 'a','b','c' and 'd' */
case 'a':
temp = list;
while (temp != null)
{
System.out.println (temp.data);
temp = temp.next;
}
System.out.println();
break;
case 'b':
System.out.println("Please enter the name of the new product:");
tempName = kb.nextLine();
System.out.println("Please enter the price of the new product:");
tempPrice = kb.nextDouble();
temp = new node(tempName, tempPrice);
temp.next = list;
list = temp;
break;
case 'c':
System.out.println("Please enter a product name:");
n=kb.nextLine();
tempProduct = list.search(n);
if(tempProduct == null)
System.out.println("Cannot find product named " n);
else
System.out.println("Product found: " tempProduct);
break;
case 'd':
System.out.println("Please enter name of a customer to remove from list:");
tempString = kb.nextLine();
list = delete(list, tempString);
break;
default: System.out.println("Incorrect selection.n");
} //end switch
} //end while
} //end main();
} //end class prog6
class Product
{
String name;
double price;
public Product(String n, double p)
{ name=n;
price=p;
} //end Constructor
public String toString()
{
return String.format("%-20s.2f", name, price);
}
} //end class Product
public Product search (String key)
{
node temp = head;
while (temp != null)
{
if (temp.data.name.equals(key))
return temp.data;
else
temp = temp.next;
}
return null;
}
public void add (Product a)
{
node temp = new node (a);
temp.next = head;
head = temp;
}
public Boolean delete (String namekey, Product a)
{
node previous = null;
node current = head;
while (current != null)
{
if (current.name.equals(namekey))
{
current = current.next;
if (previous == null)
previous = current;
else
previous.next = current;
return true;
}//end if
else
{
previous = current;
current = current.next;
}//end else
}//end while
return false;
}
Мы очень ценим любую помощь!
Комментарии:
1. Кстати, я понимаю, что не все случаи были реализованы правильно. Я просто хотел посмотреть, где я нахожусь. :/
2. строка 127 — `общедоступный поиск продукта (строковый ключ)`
3. У вас длинный список ошибок компилятора, а не багов. Я предлагаю вам написать только короткую программу, прежде чем вы начнете проверять, компилируется ли она. В идеале используйте IDE, поскольку она будет показывать вам ошибки по мере ввода. Я предлагаю вам начать с первой ошибки, которую вы не указали, исправить это, и подробнее перейти к следующей. Вы ссылаетесь на два класса, которые вы не предоставили.
4. @Lish, перед этой строкой довольно много ошибок, я предлагаю вам сначала исправить их.
5. Где
head
определено?
Ответ №1:
Ошибка находится в строке
public Product search (String key)
и причина в том, что java принимает только определения классов, интерфейсов или перечислений на верхнем уровне (как совершенно ясно указано в сообщении).
Комментарии:
1. Хорошо… Возможно, на данный момент у меня недостаток сна, но я понятия не имею, что это значит. Не могли бы вы объяснить?
2. Окей, Лиш, что ты там определяешь? Каким должен быть «поиск»?
3. предполагается, что search — это метод, который выполняет поиск строки продукта внутри связанного списка, и он должен возвращать узел продукта.
4. @Lish: вы не можете определить метод вне класса (или перечисления).
5. @mark ООО. Итак, мне нужно переместить методы поиска / добавления / удаления в основной класс? В этом гораздо больше смысла. Сейчас я чувствую себя немного глупо. Я подумал, что это будет простая проблема. Думаю, я был прав. 😡 Спасибо
Ответ №2:
Метод:
public Product search (String key)
определено вне вашего класса.