JAVA - For循环和If else语句

时间:2017-10-12 11:34:01

标签: java

我一直试图弄清楚这个问题的答案有什么问题。真的需要帮助!任何帮助表示赞赏!感谢

问题

  • 您可以输入两个整数(a和b)和
  • 如果a<b,程序将从数字a打印到数字b。
  • 如果a>b,程序将从b打印到a。
  • 如果b is the same as a,程序会要求用户输入另一个数字b,直到它不等于a。

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter a: ");
    int a = sc.nextInt();
    System.out.println("Enter b: ");
    int b = sc.nextInt();
    
    if(a > b) {
        for(int i = b; b >= a; b--) {
            System.out.println(b);
        }
    } else if (a < b) {
        for(int i = a; a <= b; a++) {
            System.out.println(i);
        }
    } else {
        System.out.println("Enter another number b: ");
        int numberb = sc.nextInt();
    }
    

    }

3 个答案:

答案 0 :(得分:5)

我对你当前的尝试进行了一些修正,这与我们的功能相差不远。首先,我使用循环来提示用户输入b号码,直到a不等于b。如果手中有ab,我会做一个循环来打印从最小到最大的数字范围,包括两端。

Scanner sc = new Scanner(System.in);
System.out.println("Enter a: ");
int a = sc.nextInt();
int b;
do {
    System.out.println("Enter b: ");
    b = sc.nextInt();
} while (b == a);

for (int i=Math.min(a, b); i <= Math.max(a,b); ++i) {
    System.out.println(i);
}

答案 1 :(得分:1)

要允许用户输入b,直到与a不同,您可以使用do while loop

Scanner sc = new Scanner(System.in);
System.out.println("Enter a: ");
int a = sc.nextInt();
int b = 0;
do {
    System.out.println("Enter b: ");
    b = sc.nextInt();
} while (a == b);

然后打印你可以简单地做:

for (int i=Math.min(a, b); i <= Math.max(a,b); ++i) {
    System.out.println(i);
}

或更正您的代码:

 if (a > b) {
    for (int i = b; i <= a; i++) {   // i is the index to change
        System.out.println(i);       // use i
    }
} else if (a < b) {
    for (int i = a; i <= b; i++) {   // i is the index to change
        System.out.println(i);       // use i
    }
}

答案 2 :(得分:0)

你的for循环迭代是错误的。对于你的第三个条件,我做了一些改变。更改您的代码:

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        test t = new test();
        System.out.println("Enter a: ");
        int a = sc.nextInt();
        System.out.println("Enter b: ");
        int b = sc.nextInt();
        if(a==b) {
            do {
                System.out.println("Both are same enter again");
                b = sc.nextInt();
            }while(a==b);
            t.loop(a, b);
        }else {
            t.loop(a,b);
        }
    }
    void loop(int a, int b) {
        if(a > b) {
            for(int i = b; i <= a; i++) {
                System.out.println(i);
            }
        } else if (a < b) {
            for(int i = a; i <= b; i++) {
                System.out.println(i);
            }
        }
    }
}