You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Do While循环绘制正方形遇无限循环问题求助

问题分析与解决

你的代码陷入无限循环的核心原因是在外层do-while循环内部每次都重置了impresosAlto为0:
每次进入外层循环,impresosAlto = 0都会执行,之后内层循环完成一行打印,impresosAlto++让它变成1,接着判断循环条件impresosAlto != alto——只要你输入的alto大于1,这个条件永远为真,循环永远不会停止。

修复后的代码

把impresosAlto的初始化移到外层do-while循环外面,这样它的值就不会被每次循环重置:

int alto;
int ancho;

System.out.println("Dame el alto: ");
alto = scanner.nextInt();
System.out.println("dame el ancho: ");
ancho = scanner.nextInt();

int impresosAlto = 0; // 移到外层循环外初始化
int impresosAncho;

do {
    impresosAncho = 0;

    do {
        System.out.print("*");
        impresosAncho++;
    } while (impresosAncho != ancho);

    System.out.println();
    impresosAlto++;

} while (impresosAlto != alto);

额外建议

  • 可以考虑用更简洁的for循环来实现,逻辑会更清晰,不容易出现这类变量重置错误:
for (int i = 0; i < alto; i++) {
    for (int j = 0; j < ancho; j++) {
        System.out.print("*");
    }
    System.out.println();
}

内容的提问来源于stack exchange,提问作者Luca Prestipino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:35:23