Java 我从以下代码中获得意外输出:

Java 我从以下代码中获得意外输出:,java,netbeans,Java,Netbeans,这是我应该得到的输出: 123 4 5 6 7 8 9 10 11 12 ... 97 98 99 但当我把我的意见作为 499 我得到的结果是: 01123 4 5 6 7 .... 96 97 98 99 我不应该从0开始 我的代码有什么问题?你开始j=1(因为你第一次进入循环时i=1) 如果x%2==0(这种情况下),则打印j-1 当然你会从0开始,我不明白你为什么会感到惊讶。 如果要避免这种情况,只需打印: (j-1)==0?“:j-1+”我试图稍微重写一下您的代码,这样它就不会

这是我应该得到的输出:

123
4 5 6
7 8 9
10 11 12
...
97 98 99
但当我把我的意见作为

499
我得到的结果是:

01123
4 5 6 7 
....
96 97 98 99
我不应该从0开始


我的代码有什么问题?

你开始
j=1
(因为你第一次进入循环时i=1) 如果
x%2==0
(这种情况下),则打印
j-1
当然你会从0开始,我不明白你为什么会感到惊讶。 如果要避免这种情况,只需打印:
(j-1)==0?“:j-1+”
我试图稍微重写一下您的代码,这样它就不会那么凌乱了。这就是你想要实现的吗

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
       Scanner input=new Scanner(System.in);
       int i = 0;
       int x;
       x=input.nextInt();
       int y;
       y=input.nextInt();
       while(i<y){
        for ( i = 1; i <=y; i=i+x) {
            for ( int j = i; j <=(i+(x-1)); j++) {
                 if(x%2==0 && y%3==0)
                 {
                     System.out.print((j-1)+" ");
                 }
                 else
                     System.out.print(j+" ");
            }
            System.out.println();
        }
    }
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int x=input.nextInt();
int y=input.nextInt();
对于(int i=1;i
扫描仪输入=新扫描仪(System.in);
int i=1;
int j=0;
int x;
x=input.nextInt();
int-y;
y=输入。nextInt();

对于(i=1;i您的第一个输出将是一个4,因为此时x=3和y=99。两者都不是,您的else块将被命中。将
if(x%2==0&&y%3==0)
更改为
if(x%2==0 | y%3==0)
第一次输出将得到0。这不会完全解决您的问题,但会让您走上正确的道路。

提示:问题出在
System.out.print((j-1)+”);
j
1
开始打印
j-1
。您尝试过调试它吗?您不需要那里的while循环。如果我删除(j-1)我在输出的末尾得到了一个额外的数字,即:100,我不想要…我想要它停在99,我以j=I而不是j=1开始这不是答案,如果我改为I=0,我从-1@DimitriBosteels我试过(j-1)=0?”:j-1+“”但是对于输入:4 99,它在第一行只给我3个数字,然后从下一行开始给我4个数字。好吧,99/4不是整数,所以你不能让所有的行都有4个数字。第一行是3,或者最后一行。我告诉过你为什么得到0,我告诉过你如何避免它,但是如果你想从1开始,得到最后一行有了3个数字,您将不得不返工您的循环
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int x=input.nextInt();
    int y=input.nextInt();
    for (int i = 1; i < y + 1; i++) {
        System.out.print(i + " ");
        if (i % x == 0){
            System.out.println();
        }
    }
    input.close();
}
Scanner input=new Scanner(System.in);
    int i = 1;
    int j = 0;
    int x;
    x=input.nextInt();
    int y;
    y=input.nextInt();

     for( i = 1; i <=y; i++) {
                  System.out.print(i);
                  System.out.print(" ");
                  j++;
        if(j == x){
             System.out.println();
             j = 0;
        }
     }