public class Test{
public static void main(String[] arg){
System.out.println("Alexander The Great");
}
}
V tomto kóde, ak odstránim prvú úvodzovku v reťazci, dostanem tri chyby. 1. ")" očakávané 2. neuzavretý reťazec doslovný 3. nie vyhlásenie
ok, rozumiem vyššie chybám.
Ak odstránim druhú úvodzovku v reťazci, taktiež dostanem tri chyby. 1. neuzavretý reťazec doslovný 2. ";" očakávaný 3. dosiahol koniec súboru počas analýzy
Rozumiem 1 a 2, ale prečo 3 ??
Nie je to zvyčajne, keď chýbajú zátvorky? Ale jasne, mám správny počet závor. Tiež prečo nie prvý prípad uvádza chybu "dosiahol koniec súboru pri analýze"?
PS: Používam jGrasp, java 1.6.
odpovede:
1 pre odpoveď č. 1Odchod z funkcie najprv Citácia potenciálne dáva analyzátorovi trochu viacpracovať, pretože sa pokúsi zaobchádzať s odkazom "Alexander". Akonáhle zasiahne priestor, jediný právny materiál je zvyšok výrazu, ale namiesto toho si myslí, že je to ďalší identifikátor.
Môže to byť vloženie bonusu )
pokúsiť sa zotaviť sa; závisí od implementácie.
Odchod z poslednej cenovej ponuky odošle analyzátorna koniec riadku. Namiesto toho, aby sa snažil tento výrok zatvoriť, dostane trochu stratený a vypnutý a nemôže sa zotaviť a narazí na koniec súboru.
Z vrcholu mojej hlavy, pre mňa sa zdá, že odvtedyIringové reťazce sú iba jednorazové, môžu robiť to isté a pokúsiť sa uzavrieť reťazec a / alebo vyhlásenie v tomto prípade a zotaviť sa trošku elegantnejšie. Možno by som však chýbal niečo zrejmé.
0 pre odpoveď č. 2
Vzhľadom na to, že sa EOF stretol pri vyhľadávaní značky cenovej ponuky. Neviem, či sú presné chybové hlásenia, ktoré sa majú vyslať pre zlý kód, špecifikované alebo nie.
-1 pre odpoveď č. 3
použiť verejné statické neplatné hlavné (String arg []) namiesto verejného statického prázdneho hlavného reťazca (String [] arg)