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

Java代码:将while循环改为do-while与for循环的技术疑问

替换Java循环结构:将while改为do-while和for循环

没问题,我来帮你搞定把while循环换成do-while和for循环的事儿,顺便帮你理清判断逻辑的处理方式~

1. 替换为do-while循环

do-while的特点是先执行一次循环体,再判断是否继续,刚好适配你需要先输入再判断退出的场景。我们可以把原代码里的break逻辑转化为do-while的循环终止条件,让代码结构更清晰:

import java.util.Scanner;
public class ASCII {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s;
        char c;
        
        do {
            System.out.println("insert letters. (insert # exit)");
            s = scan.next();
            c = s.charAt(0);
            // 只有输入的不是#时,才输出ASCII码
            if(c != '#') {
                System.out.print(c + " ASCII code " + (int)c + " end");
            }
        // 当输入字符不是#时,继续循环;输入#则终止
        } while(c != '#');
        
        scan.close();
    }
}

这里的逻辑是:先执行一次输入操作,判断非#就输出结果,最后通过c != '#'的条件决定是否继续循环——输入#时循环直接终止,完美替代原代码的break逻辑。

2. 替换为for循环

for循环通常用于已知循环次数的场景,但也可以通过设置条件为true实现无限循环,然后在循环体内处理退出逻辑,和原while循环思路类似,只是结构不同:

import java.util.Scanner;
public class ASCII {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s;
        char c;
        
        // 初始化、迭代部分留空,条件设为true实现无限循环
        for(;;) {
            System.out.println("insert letters. (insert # exit)");
            s = scan.next();
            c = s.charAt(0);
            // 遇到#就退出循环
            if(c == '#') {
                break;
            }
            System.out.print(c + " ASCII code " + (int)c + " end");
        }
        
        scan.close();
    }
}

for(;;)等价于while(true),是Java里实现无限循环的常用写法,原代码的if判断和break逻辑可以直接沿用,不需要做太多改动。

你也可以把变量声明放到for的初始化部分,让代码更紧凑:

import java.util.Scanner;
public class ASCII {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        
        for(String s; ; ) {
            System.out.println("insert letters. (insert # exit)");
            s = scan.next();
            char c = s.charAt(0);
            if(c == '#') {
                break;
            }
            System.out.print(c + " ASCII code " + (int)c + " end");
        }
        
        scan.close();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:18:11