Discuss / Java / 很奇怪,取栈的大小出来不能直接用于循环

很奇怪,取栈的大小出来不能直接用于循环

Topic source

The__Wolf

#1 Created at ... [Delete] [Delete and Lock User]

import java.util.*;

public class Main {

    public static void main(String[] args) {

        String hex = toHex(12500);

        if (hex.equalsIgnoreCase("30D4")) {

            System.out.println("测试通过");

        } else {

            System.out.println("测试失败");

        }

    }

    static String toHex(int n) {

        Deque<String> q = new LinkedList<>();

        String[] str = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};

        while(n > 0){

            q.push(str[n % 16]);

            n = n/16;

        }

        String ans = "";

        int size = q.size();

        for(int i=0;i<size;i++){

            String tmp = q.pop();

            ans = ans + tmp;

        }

        return ans;

    }

}

q.size()如果直接放在循环那里,循环就只执行2次,太奇怪了

闪电快波

#2 Created at ... [Delete] [Delete and Lock User]

执行过程中size会变的,不可以放在for里边儿


  • 1

Reply