JAVA-For循环和If-else语句

JAVA-For循环和If-else语句,java,Java,我一直在想这个问题的答案到底出了什么问题。真的需要帮助!感谢您的帮助!谢谢 问题: 您可以输入两个整数(a和b),以及 程序将从a号打印到b号如果ab,程序将从b号打印到a号 如果b与a相同,程序将要求用户输入另一个数字b,直到它不等于a为止 Scanner sc = new Scanner(System.in); System.out.println("Enter a: "); int a = sc.nextInt(); System.out.println("Enter b: "); in

我一直在想这个问题的答案到底出了什么问题。真的需要帮助!感谢您的帮助!谢谢

问题:

  • 您可以输入两个整数(a和b),以及
  • 程序将从a号打印到b号如果
    ab
    ,程序将从b号打印到a号
  • 如果
    b与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();
    }
    
    Scanner sc=新扫描仪(System.in);
    System.out.println(“输入a:”);
    int a=sc.nextInt();
    System.out.println(“输入b:”);
    int b=sc.nextInt();
    如果(a>b){
    对于(int i=b;b>=a;b--){
    系统输出打印ln(b);
    }
    }否则如果(afor(int i=a;a您的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);
                }
            }
        }
    }
    
    公共类测试{
    公共静态void main(字符串[]args){
    扫描仪sc=新的扫描仪(System.in);
    测试t=新测试();
    System.out.println(“输入a:”);
    int a=sc.nextInt();
    System.out.println(“输入b:”);
    int b=sc.nextInt();
    如果(a==b){
    做{
    System.out.println(“两者都是相同的再次输入”);
    b=sc.nextInt();
    }而(a==b);
    t、 回路(a,b);
    }否则{
    t、 回路(a,b);
    }
    }
    无效循环(整数a,整数b){
    如果(a>b){
    
    for(int i=b;i您的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);
                }
            }
        }
    }
    
    公共类测试{
    公共静态void main(字符串[]args){
    扫描仪sc=新的扫描仪(System.in);
    测试t=新测试();
    System.out.println(“输入a:”);
    int a=sc.nextInt();
    System.out.println(“输入b:”);
    int b=sc.nextInt();
    如果(a==b){
    做{
    System.out.println(“两者都是相同的再次输入”);
    b=sc.nextInt();
    }而(a==b);
    t、 回路(a,b);
    }否则{
    t、 回路(a,b);
    }
    }
    无效循环(整数a,整数b){
    如果(a>b){
    
    对于(int i=b;i我对您当前的尝试做了一些更正,这离功能还不远。首先,我使用一个循环不断提示用户输入一个
    b
    数字,直到
    a
    不等于
    b
    。手上拿着distinct
    a
    b
    ,然后执行一个循环来打印范围从最小到最大的数字,包括两端

    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);
    }
    
    Scanner sc=新扫描仪(System.in);
    System.out.println(“输入a:”);
    int a=sc.nextInt();
    int b;
    做{
    System.out.println(“输入b:”);
    b=sc.nextInt();
    }而(b==a);
    
    for(int i=Math.min(a,b);i我对您当前的尝试做了一些更正,这离功能不远。首先,我使用一个循环不断提示用户输入a
    b
    数字,直到
    a
    不等于
    b
    。手上拿着distinct
    a
    b
    ,然后执行一个循环来打印数字范围从最小到最大,包括两端

    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);
    }
    
    Scanner sc=新扫描仪(System.in);
    System.out.println(“输入a:”);
    int a=sc.nextInt();
    int b;
    做{
    System.out.println(“输入b:”);
    b=sc.nextInt();
    }而(b==a);
    
    对于(int i=Math.min(a,b);i要允许用户输入a
    b
    ,直到它与a
    a
    不同,您可以使用a
    do while循环

    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);
    }
    
    for(inti=Math.min(a,b);ib){
    
    对于(int i=b;i要允许用户输入一个
    b
    直到它与
    a
    不同,您可以使用
    do while循环

    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);
    }
    
    for(inti=Math.min(a,b);ib){
    
    因为(inti=b;i
    while(true)
    break
    不是很好的做法,
    do/while
    是为:)@azro重构的,谢谢,你刚刚删除了一行不必要的代码。现在让我们想一个方法,用一行lambda替换整个东西;-)
    while(true)
    break
    不是很好的做法,
    do/while
    是为:)@azro重构的,谢谢,你刚刚删除了一行不必要的代码。现在让我们想一个方法,用一行lambda替换整个东西;-)