for循环中条件(condition)为空的含义和用法 int i = 0 i++(扔鸡蛋算法)

以Java为例,有时候在代码中我们会看到如下类型的for循环代码

public int forLoop(int n){
	for (int i = 1; ; i++) {
		ans += (long) i;
	    if (ans >= (long)n) {
	    	return i;
	    }
	 }
}

首先看一下java for循环的基本概念:

for (statement 1; statement 2; statement 3) {
  // code block to be executed
 }
 
Statement 1 is executed (one time) before the execution of the code block.

Statement 2 defines the condition for executing the code block.

Statement 3 is executed (every time) after the code block has been executed.

这种写法表明for循环的条件语句为空, 也就是说没有条件限制, for循环可以“无限”执行,
这样一来这个函数forLoop也不会被强制要求在整个for循环结束后return 一个int了,因为它本身可能是“无限”的。

接下来我们看看正常情况下如果不希望for循环“无限”执行,上面这个函数该怎么写:

public int forLoop(int n){
	for (int i = 1; i <= n; i++) {
		ans += (long) i;
	    if (ans >= (long)n) {
	    	return i;
	    }
	 }
	 return -1; //如果for循环设置了条件,这里就必须返回一个int才行,否则会报错
}

喜欢算法的朋友们可能已经看出来这段代码其实就是经典的“扔鸡蛋”问题的归纳法解法了。作者本身也在学习编程,讲解的不对的地方欢迎大家指正~

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值