java里有两种代表结束的符号,一是 “}” 大括号完,二是 “;” 分号。
这个在课上有讲,但当时并没有太过于注意,于是下课写代码出现了有趣的现象。
这是代码段:
int count=0;//定义变量存储7的倍数出现的次数。
for(int x=1;x<=100;x++)
/*
定义初始化变量x,并赋值为1;
定义循环条件;
循环体结束后x自增1;
*/
{
if (x%7==0) /*定义判断语句;
当x能被7整除时才进行下面操作;
*/
{
count++;//判断条件满足,记录次数变量自增1;
}
}
System.out.println ("7count= "+count);//打印最终记录次数变量值;
我最开始写成了这样:
if (x%7==0);
然后编译通过,运行之后发现结果和预想的完全不同。
回过头看代码很快发现,判断语句完全没有起到作用,只有x不停的自增到100然后循环结束。
然后我看到了那个分号。
说来是这样的,分号结束了判断语句的执行操作,也就是说运行到 if 的时候只执行了判断,
后续的操作就没有了,变量自增的操作变成了独立的单条语句存在。
于是便得到了那个预想之外的结果。
发现真的如此,遇到的错误,解决之后就成为了经验。当然对于现在的我来说似乎谈之过早,
但愿之后不要再犯同样的错误罢。