嵌套for循环,我无法得到我想要的

时间:2013-09-27 07:59:33

标签: java

public class practice extends ConsoleProgram {

    public static int max(int num1, int num2) {
        int result;

        if (num1 > num2)
            result = num1;
        else 
            result = num2;  

        return result;     
    }  

    public void run () {     
        for (int i = 0; i<=10; i+=2){
            for (int j = 1; j < 10; j*=2) {   
                println( max(i,j));
            }
        }
    }
}

这段代码有什么问题吗?当我运行它时,我没有得到任何max(i,j),但是连续只有一个数字。

4 个答案:

答案 0 :(得分:0)

请参阅代码中的注释:

public class practice extends ConsoleProgram {

    public static int max(int num1, int num2) {
        int result;

        if (num1 > num2) 
            result = num1;
        else 
            result = num2;  

        return result;     
    }  

    public void run () {     
        for (int i = 0; i<=10; i+=2){
            for (int j = 1; j < 10; j*=2) {   
                System.out.println( max(i,j)); // instead of println() unless static import
            }
        }
    }
}

测试一下: http://ideone.com/YNXsKA

答案 1 :(得分:0)

您不必编写自己的max()。重写程序员zyllion测试的库方法不是一个好习惯,你可以在自己的实现中轻易搞错。这works

class Ideone
{
    public static void main (String[] args)
    {
        for (int i = 0; i <= 10; i += 2)
        {
            for (int j = 1; j < 10; j *= 2)
            {
                System.out.println(Math.max(i,j));
            }
        }
    }
}

答案 2 :(得分:0)

我和普通的java程序一样

package com;

public class TestRun {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for (int i = 0; i<=10; i+=2){
            for (int j = 1; j < 10; j*=2) {   
                System.out.println( max(i,j));
            }
        }

    }
     public static int max(int num1, int num2) {
            int result;
            if (num1 > num2)
                result = num1;
            else 
                result = num2;  
            return result;     
        }  
}

我得到的输出是

  

1 2 4 8 2 2 4 8 4 4 4 8 6 6 6 8 8 8 8 8 10 10 10 10

这是你期待的吗?

答案 3 :(得分:0)

“我实际上期待看到max(i,j),我意识到我做错了......”

如果你想写字符串,你必须在引号中使用它,如:

System.out.println("max(i,j)");