for循环、while循环、do while循环是否可以相互转换

前言:

最近在看面试题的时候,做到了一些关于它们的一些选择题,我也有点疑惑,所以求助于百度,然后我也没有找到确切的答案,下面给出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正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值