Java Eclipse继续运行该类,但不打印任何内容

Java Eclipse继续运行该类,但不打印任何内容,java,Java,我试图找到1080p21:9(2560*1080)的所有比例分辨率 例如: 38401620 ____=__; 25601080 交叉乘法:3840*1080=2560*1620 求解0=0 这意味着3840*1620与2560*1080成正比 要找到我写的所有内容: public void vai(){ double B1 = 2560; double B2 = 1080; double T1 = 2561; double T2 = 1081; doub

我试图找到1080p21:9(2560*1080)的所有比例分辨率

例如:

38401620 ____=__;
25601080

交叉乘法:3840*1080=2560*1620

求解0=0

这意味着3840*1620与2560*1080成正比

要找到我写的所有内容:

public void vai(){
    double B1 = 2560;
    double B2 = 1080;
    double T1 = 2561;
    double T2 = 1081;
    double calD = 0;
    double calE = 0;
    double d = 0;

    for (int i = 2561; i < 3500; i++){
        for (int k=1081; k < 2200; k++) {
            calD = B1*T2;
            calE = B2*T1;
            d = calD - calE;                
            if (d == 0.00){                 
                System.out.println(T1+ " X "+ T2 + " Result: " + d);
                T2 = T2+1;                  
            }

            else {                  
                T2 = T2+1;
            }

        }
        T1 = T1+1;
    }
 }
public void vai(){
双B1=2560;
双B2=1080;
双T1=2561;
双T2=1081;
双计算=0;
双刻度=0;
双d=0;
对于(int i=2561;i<3500;i++){
对于(int k=1081;k<2200;k++){
计算=B1*T2;
刻度=B2*T1;
d=计算-刻度;
如果(d==0.00){
系统输出打印项次(T1+“X”+T2+“结果:”+d);
T2=T2+1;
}
否则{
T2=T2+1;
}
}
T1=T1+1;
}
}
但是Eclipse继续运行,什么也不打印。我也是。 CPU或内存使用没有变化

发生了什么事?

试试这个:

public class HelloWorld{

     public static void main(String []args){
        double B1 = 2560;
        double B2 = 1080;
        double T1 = 2561;
        double T2 = 1081;
        double calD = 0;
        double calE = 0;
        double d = 0;
        while (T1 < 4000){
            T2 = 1081;
            while (T2 < 2200) {
                calD = B1*T2;
                calE = B2*T1;
                d = calD - calE;
                if (d == 0){                    
                    System.out.println(T1+ " X "+ T2 + " Result: " + d);
                    T2 = T2+1;                  
                }
                else {                  
                    T2 = T2+1;
                }
            }
            T1 += 1;
        }
    }
}
公共类HelloWorld{
公共静态void main(字符串[]args){
双B1=2560;
双B2=1080;
双T1=2561;
双T2=1081;
双计算=0;
双刻度=0;
双d=0;
而(T1<4000){
T2=1081;
而(T2<2200){
计算=B1*T2;
刻度=B2*T1;
d=计算-刻度;
如果(d==0){
系统输出打印项次(T1+“X”+T2+“结果:”+d);
T2=T2+1;
}
否则{
T2=T2+1;
}
}
T1+=1;
}
}
}

您的代码进入无限循环,因为当它从嵌套的while循环中失败时,它没有任何进一步的方向,并且卡在外部while循环中。如果有任何问题,请告诉我

您需要逐步检查调试器中的代码,以查看它实际在做什么,而这并不是您所期望的。至少,在
if(d==0)
之前添加
println
语句,并显示
T1
T2
calD
calE
d
的值。提示:您没有正确地递增
T1
T2
。此外,这是一个相当糟糕的使用暴力解决问题的方法。为什么你在编辑中更改代码而不添加注释来说明你做了什么以及为什么??这是非常适得其反的;除以公因数,您将看到
2560/1080=64/27
。因此分辨率为
width=64*n;高度=27*n
对于
n=1,2,3,…
,它工作得很好。我现在明白了。T2值需要重置。