为什么我在这里没有输出也没有代码错误?

时间:2019-06-23 07:39:01

标签: java

实际上我想打印一个序列,但是在这里我没有错误,也没有输出下面给出的代码。任何人都可以解释它为什么我没有得到任何输出或错误消息? (a + b * 2 ^ 0),(a + b * 2 ^ 0 + b * 2 ^ 1)....,(a + b * 2 ^ 0 + b * 2 ^ 1 + b * 2 ^(n-1))

我正在使用简单Java代码来实现它,但是失败了。

import java.lang.Math; 

class Hck {


    public static void main(String[] args) {

        double a=1,b=1,t,n=1,res = 0;
        for (int i= 0;i<n;i++){
            for (int j= 0;j<i;j++){
                System.out.println(a + b * Math.pow(2,j));
            }
        }
    }

}

没有错误,也没有输出

2 个答案:

答案 0 :(得分:3)

您的第一个循环将i初始化为0,并且只会运行一次(它要求i小于nn为1,0小于1,因此循环将运行一次)。

您的第二个循环将j初始化为0,并要求它小于i(也是0),然后才能运行,因此您的第二个循环根本不运行({{1} }是错误的)

因为第二个循环是唯一执行任何输出的操作,并且您从不递增n,所以在第一个循环运行一次且没有任何输出之后,整个程序就结束了

如果您要实现一些相对复杂的算法,我建议您先将其写在注释中,然后再将注释转换为java。用您的母语(您认为的一种)编写一种算法并将其转换为您正在学习的语言(java)要容易得多,而不是直接使用学习语言

答案 1 :(得分:0)

我尝试手动调试代码

Step 1 : 1st for loop  i=0 and n=1 , loop condition is i<n, so enter inside the loop. 
Step 2 : 2nd for loop i=0 and j=0 , loop condition(j<i) not permit to execute inside code
Step 3 : 1st for loop i=1 and n=1 ,loop condition(i<n) not permit to execute inside code
Step 4 : terminate`

第2步是不提供任何输出的原因。