Java方法无输出无报错:按变量次数输出字符串问题排查
问题分析与解决
核心问题
你写的happyGreetings方法没有输出,根源是for循环的条件逻辑错误:
for (int i = 0; i==this.day; i++ )
初始i的值是0,调用方法时date2.day是4,0 == 4不成立,循环直接终止,自然不会执行任何输出语句。
修正方案
要让循环执行this.day次,循环条件应该判断i小于this.day——从i=0开始,直到i达到this.day-1,刚好执行this.day次。修正后的方法如下:
public void happyGreetings() { // 局部变量i,满足方法必须包含局部变量的要求 for (int i = 0; i < this.day; i++ ) { System.out.println("Happy Greetings!"); } }
调用date2.happyGreetings()后,会输出4次"Happy Greetings!",和date2.day的值完全一致。
补充:do-while循环实现方式
如果你想用do-while循环完成需求,同样需要正确控制循环次数,示例代码如下:
public void happyGreetings() { // 局部变量count,作为循环计数器 int count = 0; do { System.out.println("Happy Greetings!"); count++; } while (count < this.day); }
do-while会先执行一次循环体,再判断条件,同样能保证输出次数等于this.day的值。
内容的提问来源于stack exchange,提问作者Bake
相关产品推荐
相关产品推荐

