Java 代码中的错误是什么?它没有';t打印第一、第三、第五页的最后一个术语。。。线

Java 代码中的错误是什么?它没有';t打印第一、第三、第五页的最后一个术语。。。线,java,Java,代码中的错误是什么?它不会在第一、第三、第五页打印最后一个术语。。。台词 public class Pattern { public static void main(String args[]) { int i = 1; for(i = 1; i<5; i++) { for(int j =i*i/2 - i/2 + 1; j < i*i/2 + i/2 +1 ; j++) { Syst

代码中的错误是什么?它不会在第一、第三、第五页打印最后一个术语。。。台词

public class Pattern {

    public static void main(String args[]) {
        int i = 1;
        for(i = 1; i<5; i++) {
            for(int j =i*i/2 - i/2 + 1; j < i*i/2 + i/2 +1 ; j++) {
                System.out.print(j + "\t");
            }   
            System.out.println();
        }
    }

}
公共类模式{
公共静态void main(字符串参数[]){
int i=1;

对于(i=1;i首先-只有4行,而不是5行。另一件事,最后一个“term”因为除以整数而不打印。像1/2将返回0,而不是1。

对于
i=1
,算法给出:

i * i / 2 = 1 * 1 / 2 = 0.5
因为i是一个整数,所以实际值是0

与所有其他奇数相同,如3和5


使用双精度和四舍五入或更改您的数学。

运行此代码以查看for循环中发生了什么

public static void main(String args[]) throws Exception {
        int i = 1;      
        for (i = 1; i < 5; i++) {
             int throughLoop = 0;
             int jInitial = i * i / 2 - i / 2 + 1;
             int jCheck = i * i / 2 + i / 2 + 1;
            for (int j =jInitial ; j < jCheck; j++) {
                System.out.print(j + "\t");
                throughLoop++;
            }
            //jInitial - jCheck because check is less than not less or equal
            System.out.println("Expected times through loop is " + (jCheck - jInitial) + " Actual through loop " + throughLoop+ " Check was :less than" +jCheck);
            throughLoop = 0;
        }

    }
publicstaticvoidmain(字符串args[])引发异常{
int i=1;
对于(i=1;i<5;i++){
int-throughLoop=0;
int jInitial=i*i/2-i/2+1;
int jCheck=i*i/2+i/2+1;
for(int j=jInitial;j

就像有人问你期望的结果是什么。可能是你需要小于或等于的比较,而不仅仅是小于
(int j=i*i/2-i/2+1;j试试这个代码

public class Pattern {

public static void main(String args[]) {
    float i = 1;
    for(i = 1; i<=5; i++) {
        for(float j =((i*i/2) - i/2 + 1); j < ((i*i/2) + i/2 +1) ; j++) {
            System.out.print((int)j + "\t");
        }   
        System.out.println();
    }
}

}
公共类模式{
公共静态void main(字符串参数[]){
浮点数i=1;

对于(i=1;i当前输出是什么?你期望什么?你想做什么?你期望什么输出?7、8、9和10仍然小于11-这是你方法中的检查。这就是为什么没有换行符。但是你想要实现什么?可能,它可以变得更容易?在我指定5之前,你没有使用=号,所以它是仅迭代4次。