前言:
最近在看面试题的时候,做到了一些关于它们的一些选择题,我也有点疑惑,所以求助于百度,然后我也没有找到确切的答案,下面给出2个选择题谈谈我个人的看法。
选择题1:
下列关于for循环和while循环的说法中那个是正确的?()
A、while循环能实现的操作,for循环也都能实现
B、while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C、两种循环任何时候都可替换
D、两种循环结构中都必须有循环体,循环体不能为空
答案:A、C
解释:
A:我没有找到可以反对的例子,所以A项正确
B:如果while循环判断条件一般是程序结果,那在循环体里面会执行什么判断呢,暂时没有遇到,毕竟用while循环的情况还是比较少的,感觉B项错误
C:这个暂时没有找到可以反对的例子,所以C项正确
D:首先两种循环结构中都必须有循环体,如下所示:
证明for循环必须有循环体:
证明while循环必须有循环体:
其次for循环的循环体可以为空,而while循环的循环体不一定能为空,如下所示:
证明for循环循环体可以为空:
证明while循环循环体不一定能为空:
选择题2:
说法中正确的是()
A、for循环完全可以用while循环替代。
B、while循环完全可以用do{}while循环替代。
C、while循环完全可以用for循环替代。
D、do{}while循环完全可以用while循环替代。
E、do{}while循环和while循环均完全可以用for循环替代。
答案:A、C、D、E
解释:
A:没有找到可以反对的例子,所以A正确
B:有些while循环不能用do while循环代替,如下所示:
int a = 1;
while (a != 1) {
System.out.println(a);
}
上述的while循环根本不会执行,由于do while循环是循环一次在判断,因此无法替换,所以B错误
C:没有找到可以反对的例子,所以C正确
D:do while循环不过是先执行在判断,while循环完全可以做到,来一个do while循环的特例吧,如下所示:
int a = 1;
do{
System.out.println(1);
} while (a!=1);
上述例子中只会执行一次循环体,接下来看我用while循环怎么替代它,如下所示:
int a = 1;
while(a!=2){
System.out.println(1);
a++;
}
虽然样子不一样,但是实现的功能是一样的,都是一次循环,所以D正确
E:既然while循环都能替代do while循环,那for循环和while循环可以相互转换,所以for循环也能替代do while循环,所以E正确