Unity C#:i=24触发Debug.Log异常及变量重复声明问题求助
解决方案:仅在i=24时输出调试消息
首先明确:你的第一段代码逻辑本身是正确的——只有当循环变量i等于24时,才会执行Debug.Log输出。如果控制台出现了非预期的日志,大概率是SpawnPlatform()方法内部存在额外的日志输出,和这段判断代码无关。
以下是几种可靠的实现方式:
方式1:循环内直接判断(最直观)
保留原逻辑,确认SpawnPlatform()无额外输出即可,同时修正拼写错误:
for(int i = 0; i<25; i++) { SpawnPlatform(); if(i == 24) { Debug.Log("Congratulations starting"); } }
方式2:循环结束后直接输出
由于你的循环会执行25次(i从0到24),循环结束意味着已经处理完i=24的情况,可直接输出日志:
for(int i = 0; i<25; i++) { SpawnPlatform(); } Debug.Log("Congratulations starting");
方式3:修复变量作用域冲突(仅作演示)
你第二段代码的错误是重复定义了变量i(外部和循环内都声明了int i),导致作用域冲突。如果要在循环外使用变量,需避免重复声明,但注意循环结束后i的值是25而非24:
int i = 0; for(; i<25; i++) // 不再重新声明int i { SpawnPlatform(); } // 循环结束后i=25,因此不能用i==24判断,直接输出即可 Debug.Log("Congratulations starting");
内容的提问来源于stack exchange,提问作者Ars Developer
相关产品推荐
相关产品推荐

