句法分析java代码 语法句型分析
java语法错误,进行分析时已经到达文件结尾
原因:
10年积累的成都网站设计、成都网站建设、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有济源免费网站建设让你可以放心的选择与我们合作。
分析已达到文件结尾一般是括号没有闭合,或者缺少了分号
解决方案:
手工查看括号闭合情况
使用带自动对齐功能的编辑器如eclipse,notepad++
建议平时编程时多注意积累错误经验,语法错误不应当耗费太多时间
拓展资料:
Java的组成:
Java编程语言
Java类文件格式
Java虚拟机
Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,
把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用
参考资料:百度百科_Java
用Java怎么解析C/C++代码生成AST抽象语法树结构
其中一个明显的例子是Eclipse CDT里的parser。
它是完全用Java实现的,手写的递归下降parser,能把C或C++源码parse成AST供Eclipse CDT的IDE功能使用。它支持C99语法(包括GCC扩展)、C++语法(我没仔细看现在支持到什么版本了)等。
它并不用于实际的编译(这跟Eclipse JDT里的Eclipse Compiler for Java不同);实际编译还是交给诸如GCC、xlc之类的编译器去完成。
关于Eclipse CDT里的C与C++ parser的介绍,请参考
帮看个JAVA小程序语法问题
估计这个要打些字呢。
先说第一个问题吧。
//这句话中怎么调用的compare方法 给详细讲解下
这个问题主要就是解释下这句话a[j].compare(a[j+1]) 。
我们不用考虑这么多日期,就拿两个日期来讲吧,道理是一样的。
假设是a1.compare(a2),执行这行代码的时候就会进入public int compare(Date date) {}方法。你的一系列问题也在这里啊。
------------------------------------------------------------------
public int compare(Date date) { //我不明白这里的(Date date)是什么意思 进来的时候是2个参数?
----------------------------------------------------华丽的分割线
这个是传进来一个参数,举个例子,假设方法我改造如下:
public int compare(int date)
public int compare(String date)
public int compare(double date)
你能明白上面三个方法的意思么。就是传进来一个参数date,第一个它的类型是int,第二个是string 最后一个是double类型。同理public int compare(Date date)的意思就是传进来一个参数date它的类型是Date。不要被小写的date搞的迷惑了 也可以写成public int compare(Date a2)道理是一样的。date只不过是个名称,Date是这个参数名称的类型。
---------------------------------------------------------------
//到这句话中哪个是year哪个是date.year
----------------------------------------------------华丽的分割线ag
我把上面代码改写下,你会清楚些。
public int compare(Date date) {
return this.year date.year ? 1
: this.year date.year ? -1 : this.month date.month ? 1
: this.month date.month ? -1
: this.day date.day ? 1
: this.day date.day ? -1 : 0;
}
我在一些变量前面加上了this。代表对象本身。举个例子:
a1.compare(a2) 就是对象a1调用他的compare方法。而a2是做为Date型参数传进来,结果就相当于下面:(实际代码不能这么写,只是示范)
public int compare(Date a2) {
return a1.year a2.year ? 1
: a1.year a2.year ? -1 : a1.month a2.month ? 1
: a1.month a2.month ? -1
: a1.day a2.day ? 1
: a1.day a2.day ? -1 : 0;
明白了吗?year前面默认不加上"this"的话,也还是指对象本身的属性,新手常常会混淆。
---------------------------------------------------------------------
三目的这个运算明白 给讲讲上面的语法就行
--------------------------------------------------------------------囧
这个比较难讲了 大概说下吧。
1. a1.year a2.year ? 1
2. : a1.year a2.year ? -1 3. : a1.month a2.month ? 1
4. : a1.month a2.month ? -1
5. : a1.day a2.day ? 1
6. : a1.day a2.day ? -1 : 0);
先解释下运算符 a1 a2 ? 1:0 这句话的意思是如果a1大于a2是真的话,就取问号后面的第一个数,也就是1.是假的话就取冒号后面的0.
接着解释上面代码。 第一行 如果a1的年大于a2的年,那么好说,后面不必比较了a1这个日期肯定大于a2,直接返回1.但是如果是假d的话,就要取冒号后面的参数也就是2-6行的所以代码。2-6行里面又嵌套了几个运算符,第2行的意思就是如果a1的年小于a2的年,那么返回-1,也还是不用比较了,你a1的年份就是比我a2小了,这时候如果a1等于a2年份的话,就不返回-1了还要继续比较月份,也就是后面的代码,3行的代码。以后我就不解释了,你自己揣摩揣摩吧,就说这么多了,手疼。。
java进行语法解析时已到达文件结尾?
package test;
/**
* @author yinmang
*/
import java.util.*;
public class Check {
public static void main(String args[]) {
int chinput[] = new int[7];
int ch[] = new int[7];
// 接受彩票号码
System.out.println("请输入你的彩票号码:");
for (int i = 0; i 7; i++) {
chinput[i] = new Scanner(System.in).nextInt();
if (chinput[i] 35 || chinput[i] 0) {
i--;
System.out.println("您输入的号码超出范围!");
continue;
}
for (int j = 0; j i; j++) {
if (chinput[i] == chinput[j]) {
i--;
System.out.println("您输入的号码重复!");
break;
}
}
}
System.out.println("您输入的号码是:");
for (int i1 = 0; i1 7; i1++) {
System.out.println(chinput[i1] + "");
}
System.out.println();
// 产生七个不同的随机数
for (int i2 = 0; i2 7; i2++) {
ch[i2] = (int) (Math.random() * 35 + 1);
for (int j = 0; j i2; j++) {
if (ch[i2] == ch[j]) {
i2--;
break;
}
}
}
// 打印七个随机数
System.out.println("中国福利彩票35选7:");
for (int i3 = 0; i3 7; i3++) {
System.out.println(ch[i3] + "");
}
System.out.println();
// 中奖判断
System.out.println("您所中的号码");
for (int i4 = 0; i4 7; i4++) {
for (int j = 0; j 7; j++) {
if (ch[i4] == chinput[j]) {
System.out.println(ch[i4]);
break;
}
}
}
}
}
你发上来的代码错误太多,在下改了下。
至于你的到文件结束的错误不能找出原因。
java:进行语法解析时已到达文件结尾?
//少个括号,修改如下
class Box
{
public int l;
public int w;
public int h;
set Demo(int x,int y,int z)
{l=x;
w=y;
h=z;
}
}
public class c2
{
int x=10,y=20,z=30;
public static void main(String[] args)
{
Box b=new Box();
b.setDemo(10,20,30);
b.gettiji(x*y*z);
System.out.println("tiji="+b.gettiji);
}
}
请采纳。
标题名称:句法分析java代码 语法句型分析
转载注明:http://ybzwz.com/article/hejpoi.html