实际上我想打印一个序列,但是在这里我没有错误,也没有输出下面给出的代码。任何人都可以解释它为什么我没有得到任何输出或错误消息? (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));
}
}
}
}
没有错误,也没有输出
答案 0 :(得分:3)
您的第一个循环将i
初始化为0,并且只会运行一次(它要求i
小于n
,n
为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步是不提供任何输出的原因。