if是判断,while是循环。第一个的if,只执行一次后继续外面for循环。第二个while是根据判断条件决定是否循环,一旦进入了while循环后由于i和m的值不能改变,所以判断结果一直为真,在循环里出不来,即死循环。
总的来说if和while都是java条件判断的语句,执行顺序也不同,if用于单个判断,while是用于循环判断的,这是最大的区别,下面分别讲解一下:
1if 是条件判断 如果条件满足则执行if 不执行else反之如果if 条件不满足 则执行else部分注意if 是可以单独使用的 但是使用else时一定要与if搭配使用。
比如:
int i =5;
if(i==4){//判断是否为4
Systemoutprintln(“这个数是:4”);//如果是,输出结果。
}else{
Systemoutprintln(“这个数是:”+i);//如果不是,输出这个数。
}
2 while一般用于 不清楚需要循环多少次的情况下 每次执行时先判断条件是否满足 与if搭配使用时 可以使用if来判断条件 跳出循环,使用break,return可以跳出循环。例:
while(true){ //循环条件中直接为TRUE
//循环内容
if(符合某条件){ //直到符合条件后跳出本循环 否则一直循环下去
break;
}
}
2个当然有区别了,一个是判断语句if,一个是循环语句while,和while类似的是for,也是循环。
if是判断,你这个if是判断n++<=2的真假。判断语句不管真假,只执行一次。还有格式问题。不管判断语句还是循环语句,上下都是算一条语句的,你加了 ; 就说明语句结束,所以下面的printf("%d" ,n);这条语句和循环和判断语句就无关了。
不是这样的啊。你要先明白if语句和while语句的结构。
if (test) //括号里是判断条件,如果判断为真,则执行下面的语句,如果为假,不执行
; //执行语句
你刚开始if后面加了 ; 这个符号,程序就将if语句结束了,也就是默认下面的语句为空,随便if为真还是假,执行不执行,没影响了。 而你printf("%d" ,n);原来的这句,则变成一条新的输出语句,和if真假无关了。
while(test)
; 这个语句和if结构差不多,这是循环语句,也就是说,如果条件判断为真,则执行下面的语句,而且,他还会再次判定,如果还是真,继续执行,一直循环为假,才跳过这条语句执行下面的语句。
来看你的题目, n的初始值为0,n++<=2 为真,所以执行判断语句的后半部分。因为n++为1,所以输出1
另外那个循环,第一次,n为0,n++<=2 为真,执行下面的语句,输出1然后继续循环,此时n为1,n++<=2 为真,输出2,然后一直循环,到n =3时,n++<=2 为假,就不执行下面的语句了,循环结束
对啊,while是当条件满足时进行循环;而if 是当条件满足时执行一次。
把print1函数的while改为if 才能够运行出正确结果。因为在print1函数中,没有修改变量a的值,a的值就永远是321。就会永远“死循环”。
而改为if 后,因为递归能把十位以上的数字打印出来,所以只要执行一次就够了。
仔细思考程序逻辑。程序要做的是当-1≤a≤1且-1≤b≤1时输出yes,然后判断a和b是否同时为0,是则结束循环。如果你把if(a==0&&b==0) break放到最前面,那么当a和b都为0时直接跳出循环,还会执行下面的判断吗?
以上就是关于c语言中,while循环和if循环有什么不同全部的内容,包括:c语言中,while循环和if循环有什么不同、Java中if与while怎么区别,为什么输出时结果会不一样呢、c++ if 与while 的使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)