黑马程序员技术交流社区
标题:
定义变量有问题
[打印本页]
作者:
高慧觉
时间:
2014-12-3 20:07
标题:
定义变量有问题
public static void ss(int[]arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if (arr[i]>arr[j])
{
int t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
}
}
复制代码
以上代码能编译通过。但是如果把如下部分代码:
if (arr[i]>arr[j])
{
int t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
复制代码
的括号去掉,如下:
public static void ss(int[]arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if (arr[i]>arr[j])
int t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
}
复制代码
就会编译出错。具体错误如下。
"此处不允许使用变量声明 int t=arr【j】"(t下有…“^”)。
这是为什么,谁能解释一下。
作者:
高慧觉
时间:
2014-12-3 20:10
突然明白了。。。。。。:shutup:
作者:
taany
时间:
2014-12-3 20:21
如果是一组语句,需要采用复合语句形式,用{ }将这组语句括起来。
作者:
大大的心
时间:
2014-12-3 20:25
if(条件表达式)
{
执行语句;
}
而当if(条件表达式) 语句下面只有一行代码,或者return的时候,才可以把括号去掉。一般没事,就不要把括号去掉了,免得错误。
understand??
作者:
张凯zk47
时间:
2014-12-3 20:27
即使只有一条语句,一般建议不要省略……
作者:
lwh316658735
时间:
2014-12-4 18:11
条件控制语句和循环都是语句块,下面只要超出一句语句就必须用{}括上,建议一句也写上{}
作者:
ben_vs_cong
时间:
2014-12-4 19:24
因为if在没有大括号的情况下,只是管离他最近的一条语句,就可以理解为:
if (arr[i]>arr[j])
{
int t=arr[j];
}
arr[j]=arr[i];
arr[i]=t;
而t是一个局部变量,所以会报语法错误。
作者:
zmhlnrs
时间:
2014-12-4 22:57
if下没有{}只执行第一句语句
作者:
二月的雨
时间:
2014-12-5 05:17
if语句中,如果是单条语句可以不加{}; 但是,如果是多条语句必须加{}。
作者:
牛牛宝
时间:
2014-12-5 16:32
同感,在if(){}语句中,如果省略{},只对if后面的第一句起作用
作者:
hello_csu
时间:
2014-12-5 20:14
if (arr[i]>arr[j])
int t=arr[j];
arr[j]=arr[i];
arr[i]=t;
t的作用域只是针对if语句,后面所以就会判定t没有定义了。最好写if 根括号。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2