估计这个要打些字呢。
先说第一个问题吧。
//这句话中怎么调用的compare方法 给详细讲解下
这个问题主要就是解释下这句话a[j]compare(a[j+1]) 。
我们不用考虑这么多日期,就拿两个日期来讲吧,道理是一样的。
假设是a1compare(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哪个是dateyear
----------------------------------------------------华丽的分割线ag
我把上面代码改写下,你会清楚些。
public int compare(Date date) {
return thisyear > dateyear 1
: thisyear< dateyear -1 : thismonth > datemonth 1
: thismonth < datemonth -1
: thisday > dateday 1
: thisday < dateday -1 : 0;
}
我在一些变量前面加上了this。代表对象本身。举个例子:
a1compare(a2) 就是对象a1调用他的compare方法。而a2是做为Date型参数传进来,结果就相当于下面:(实际代码不能这么写,只是示范)
public int compare(Date a2) {
return a1year > a2year 1
: a1year< a2year -1 : a1month > a2month 1
: a1month < a2month -1
: a1day > a2day 1
: a1day < a2day -1 : 0;
明白了吗?year前面默认不加上"this"的话,也还是指对象本身的属性,新手常常会混淆。
---------------------------------------------------------------------
三目的这个运算明白 给讲讲上面的语法就行
--------------------------------------------------------------------囧
这个比较难讲了 大概说下吧。
1 a1year > a2year 1
2 : a1year< a2year -1 3 : a1month > a2month 1
4 : a1month < a2month -1
5 : a1day > a2day 1
6 : a1day < a2day -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行的代码。以后我就不解释了,你自己揣摩揣摩吧,就说这么多了,手疼。。
#include <iostream>
using namespace std;
#define m 45
#define n 100
#define t 10
int main()
{
FILE fp;
char filename[20],c[n];
printf("Type the file name which you want to open:");
scanf("%s",&filename);
fp=fopen(filename,"r+"); /以r-只读方式打开指定文件/
if((fp=fopen(filename,"r"))==NULL) /文件不存在输出错误/
{cout<<"文件不存在!"<<endl;exit(-1);}
cout<<"文件中内容如下:"<<endl;
for(int j=0;!feof(fp);j++){
c[j]=fgetc(fp);//从流中读取字符
}
char keyword[m][t]={"include","int","string","cout","cin","auto","break","case","char","class","const",
"continue","default","delete","do","double","else","enum","extern","float","for","friend","if","inline",
"int","long","new","operator","private","protected","public","register","return","short","sizeof","static",
"struct","switch","template","this","typedef","union","virtual","void","while"};//关键字数组
char a[t],p=c,q=a,s=a;
bool w=0,r=0;
int i=0;
for(i=0;i<10;i++)a[i]=NULL;//初始化临时数组
while (p !=NULL){
q=s=a;
if((p>='a'&&p<='z')||(p>='A'&&p<='Z')||p=='_'){//识别标识符
q=p;p++;q++;
while ((p>='a'&&p<='z')||(p>='A'&&p<='Z')||(p>='0'&&p<='9')||p=='_'){
q=p;p++;q++;
}
for(i=0;i<m;i++)if(strcmp(keyword[i],a)==0){r=1;break;}
if(r==1){cout<<"关键字为:";r=0;}
else cout<<"标识符为:";
while(s!=q){
cout<<s;
s++;
}
cout<<endl;
for(i=0;i<t;i++)a[i]=NULL;
}
else if(p=='\''){//识别字符常量
p++;
while(p!='\''){
q=p;
p++;
q++;
}
cout<<"字符常量为:";
while(s!=q){
cout<<s;
s++;
}
cout<<endl;
for(i=0;i<t;i++)a[i]=NULL;
p++;
}
else if(p=='\"'){//识别字符串常量
p++;
while(p!='\"'){
q=p;
p++;
q++;
}
cout<<"字符串常量为:";
while(s!=q){
cout<<s;
s++;
}
cout<<endl;
for(i=0;i<t;i++)a[i]=NULL;
p++;
}
else if(p=='+'||p=='-'||p==''||p=='/'||p=='='||p=='%'||p=='/'){//识别运算符
cout<<"运算符为:"<<p;
cout<<endl;
p++;
}
else if(p==';'||p==','){//识别分解符
cout<<"分界符为:"<<p;
cout<<endl;
p++;
}
else if(p>='0'&&p<='9'){
s=q=a;
q=p;p++;q++;
while(p>='0'&&p<='9'||p==''){
q=p;p++;q++;
}
while(s!=q){
if(s==''){w=1;break;}//识别实型常量
s++;
}
s=a;
if(w ==1){
cout<<"实型常量为:";
while(s!=q){
cout<<s;
s++;
}
for(i=0;i<t;i++)a[i]=NULL;
}
else {
cout<<"整型常量为:";
while(s!=q){//识别整型常量
cout<<s;
s++;
}
for(i=0;i<t;i++)a[i]=NULL;
}
cout<<endl;
}
else p++;
}
return 0;
}
以上就是关于帮看个JAVA小程序语法问题全部的内容,包括:帮看个JAVA小程序语法问题、求C语言编译原理语法分析程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)