黑马程序员技术交流社区
标题:
一个关于for循环的小练习,请大虾们分析一下?
[打印本页]
作者:
刘学宾
时间:
2012-11-11 20:28
标题:
一个关于for循环的小练习,请大虾们分析一下?
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
}
//结果是什么?
作者:
种生祥
时间:
2012-11-11 20:32
应该没结果吧.
作者:
种生祥
时间:
2012-11-11 20:34
if(m>0)
if(n>2)
System.out.println("A");
else//你
这里跟第一个if对齐,吃果果的诱导!!
System.out.println("B");
作者:
葛旭东
时间:
2012-11-11 20:51
else 和它上面最近的 if 配对。
相当于:
if(m>0)
{
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
作者:
张综
时间:
2012-11-11 20:55
class Demo
{ //主函数保证代码独立运行,是程序的入口
public static void main(String[] args)
{
int m=0,n=3;//定义两个变量m,n,并给他们分别赋值。m=0,n=3,然后程序继续向下执行,
if(m>0)//当执行到这里的时候,执行判断语句,如果满足,执行if下面的语句,否则,不执行if下面跟着的语句。在这里不满足条件。所以不执行下面跟着的语句。
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
}
因为两个if都没有用大括号注明自己的区间,所以这里的else,是和他上面离他最近的if是配套的。构成if,else语句。所以也不执行。所以这条代码什么都不打印。
作者:
张综
时间:
2012-11-11 20:56
class Demo
{ //主函数保证代码独立运行,是程序的入口
public static void main(String[] args)
{
int m=0,n=3;//定义两个变量m,n,并给他们分别赋值。m=0,n=3,然后程序继续向下执行,
if(m>0)//当执行到这里的时候,执行判断语句,如果满足,执行if下面的语句,否则,不执行if下面跟着的语句。在这里不满足条件。所以不执行下面跟着的语句。
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
}
因为两个if都没有用大括号注明自己的区间,所以这里的else,是和他上面离他最近的if是配套的。构成if,else语句。所以也不执行。所以这条代码什么都不打印。
作者:
郑丹丹
时间:
2012-11-11 22:48
什么都不打印
因为if(n>2)
System.out.println("A");
else
System.out.println("B");
是在if(m>0)循环中的;而m=0,程序直接跳转到结尾处。
作者:
朝花夕拾
时间:
2012-11-12 00:19
if判断如果不满足,就不会执行跟着它的第一句话,所以在判断m>0不满足时,就不再执行第二个if语句,就会直接跳至大括号,结束程序,没有输出结果!!!
作者:
杜正冬
时间:
2012-11-12 00:44
int m=0,n=3;
if(m>0){//不成立
。。。
}else
System.out.println("第一个判断都没通过 能打出什么来,你小子很坑!!");
作者:
化小东
时间:
2012-11-12 10:18
可以编译,但是没结果
else会和它最近的配对,第一个if语句没有和它配对的输出语句,所以没有输出结果。
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)//m=0不满足条件,下面的语句不再执行
if(n>2)
System.out.println("A");
else
System.out.println("B");
System.out.print("C") ;//要想看到结果,就在这里再来一句,与第一个if相匹配,那么输出的结果就是c了
}
}
作者:
黑马周磊
时间:
2012-11-12 10:52
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;//你定义m的时候,把m初始化为0值,
if(m>0) //当你使用if判断m>0的时候,条件是不成立的,所以你后面嵌套进去的if(n>2)……这些语句是不会执行的。
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
}
作者:
李贺晓
时间:
2012-11-12 11:11
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
}这个程序没有输出结果的
class Demo12
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)
{
if(n>2)
System.out.println("A");
}
else
System.out.println("B");
}
}这个程序输入的是B
在使用if else语句时,如果if后面不只有一句话的话,最好加个{}来区分开,要不很容易造成误解的
作者:
刘菲
时间:
2012-11-12 20:09
默认情况下if是与离它最近的else匹配,
本程序中如果想要else和第一个if匹配,则只需要加个{}说明一下后面的语句是第一个if的就可以了
程序:
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)
{
if(n>2)
System.out.println("A");
}
else
System.out.println("B");
}
}
打印结果为:B
希望能够帮到你!
作者:
jerry2627
时间:
2012-11-12 20:24
我不会告诉你结果的,因为---------你懂得--- 根本就没哦
作者:
蔡兆军
时间:
2012-11-12 20:38
第一个if 没有对应的 else,结果就是啥都没有!
作者:
7℃洋
时间:
2012-11-12 21:38
if(n>2)
System.out.println("A");
else
System.out.println("B");
这部分代码相当于是一条执行语句!
if(m>0)
条件不满足,所以程序直接跳转到最后一句!因此没有结果!
作者:
一身顺利
时间:
2012-11-12 22:57
都不打印吧,因为else离第二个if最近。当然不能相当然的,去手敲下,看看结果。其实写代码,把括号加起来怎么了,加个括号就影响程序的运行效率吗?
作者:
殷士剑
时间:
2012-11-12 23:42
if 属于单条语句,不管你是if 还是 if ... else 还是 if .. else if .. else 每次每个if只会执行出来一个结果。
另一个知识点是 else 与最接近它的那个 if 相匹配。
如果有想更好了解可以看看下面这个例子:
分辨:
n = 10;
if( n > 1)
System.out.println(n);
if( n > 2 )
System.out.println( n + 1 );
if( n > 3) |
System.out.println( n + 2); |整体
else |
System.out.println( n + 3); |
结果是:
10
11
12
13
作者:
张钧杰
时间:
2012-11-13 00:01
本帖最后由 张钧杰 于 2012-11-13 00:08 编辑
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;//你定义m的时候,把m初始化为0值,
if(m>0)
{
//当你使用if判断m>0的时候,条件是不成立的,所以你后面嵌套进去的if(n>2)……这些语句是不会执行的。
if(n>2)
System.out.println("A");
else
System.out.println("B");
}
}
}
应该这样写吧。m>2返回的是false,下面的红括号里的。都不会执行!
作者:
深井看海
时间:
2012-11-13 01:07
//我们用打印输出语句可以做程序的判断,你这并不是一个什么循环,而是一个无意义的语句
class Demo{
public static void main(String[] args){
int m=0,n=3;
if(m>0)
System.out.println("C");//如果在这加上一句话,会打印输出C,去掉这语句由于if后面没有任何的分号,而if里面的条件又是没有意义的,就说明紧跟if后面的语句都是无意义的
if(n>2)
System.out.println("A");
else
System.out.println("B");
System.out.println("D");//如果不加上面那据输出,直接写上最下面输出这语句会打印D,也能进一步说明你上面的操作一切都是无意义的
}
}
作者:
聽聽我dē❤
时间:
2012-11-13 09:11
当第一个if条件和第二个if条件成立时,才执行System.out.println("A");这句,但是第一个if条件都不成立,所以后面的也就不用看了,直接执行else后的System.out.println("B");语句就行了。
作者:
聽聽我dē❤
时间:
2012-11-13 09:11
这是for循环吗???
作者:
被遗弃者
时间:
2012-11-13 09:28
什么都不打印:
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0)//由于m=0,此时的判断条件是如果m>0,不满足,所以程序不会执行以下代码段
if(n>2)
System.out.println("A");
else//此处的else是默认找上面最近的一个if
System.out.println("B");
}
}
作者:
侯凯斌
时间:
2012-11-15 11:20
什么都不可能打印,第一个if跟下面的else不是一对,误导啊,加了括号就看明白了,第一个if就把整个都拦掉了,不在往下执行了
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0){
if(n>2){
System.out.println("A");
}else{
System.out.println("B");}
}
}
}
作者:
李培根
时间:
2012-11-15 19:25
本帖最后由 李培根 于 2012-11-15 19:32 编辑
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0){
//这里不满足条件,直接跳转到1处
if(n>2)
System.out.println("A");
else//
这里其实根本就没有读到 m>0 n<=2的话读这里
System.out.println("B");
}
1直接跳转到此处,中间的代码不读
}
}
}
不小心发重复了。。。。
作者:
李培根
时间:
2012-11-15 19:25
本帖最后由 李培根 于 2012-11-15 19:28 编辑
class Demo
{
public static void main(String[] args)
{
int m=0,n=3;
if(m>0){
//这里不满足条件,直接跳转到1处
if(n>2)
System.out.println("A");
else//
这里其实根本就没有读到 m>0 n<=2的话读这里
System.out.println("B");
}
1直接跳转到此处,中间的代码不读
}
}
作者:
奚华
时间:
2012-11-16 13:25
什么都不打印!
作者:
森仔
时间:
2012-11-16 14:13
{:soso_e134:}{:soso_e134:}{:soso_e134:}{:soso_e134:}{:soso_e134:}
这是for循环(⊙_⊙)?
作者:
郝少普
时间:
2012-11-17 14:55
没有结果,两个 if 语句都没有用大括号括起来
可以编译,但是没结果
作者:
潘天功
时间:
2012-11-18 12:43
没有输出任何结果。
原因是if(m>0)这个条件不成立,所以下面的代码是不会执行的。那个else是属于第二个if判断的,因为else会根据就近原则来和if匹配。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2