Как ввести два числа в Main с помощью сканера и заставить его работать с методом (в порядке возрастания Java)? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь сделать эту программу, которая будет печатать числа в порядке возрастания между двумя входными числами.Я сделал так, чтобы он работал как метод, и я могу вызвать метод в Main, но я действительно хочу ввести два числа в Main, а не в метод.

Примерно так:

System.out.println («Два числа в порядке возрастания»);

(введите два числа в консоли)

А затем после этого вызовите метод, который будет печатать в порядке возрастания между выбранными номерами Main.

Я новичок в этом, и я попробовал несколько вещей, но я не могу понять,что делать.Буду признателен за помощь.

Вот как выглядит код.

import java.util.Scanner;

public class AscendingOrder {

    public static void main(String[] args) {

        // calling method

        int ascending1 = ascending();
    }

    public static int ascending() {

        int min;
        int max;
        int total = 0;

        Scanner sc = new Scanner(System.in);
        System.out.println("Two numbers in ascending order");
        min = sc.nextInt();
        max = sc.nextInt();

        for (int i = min; i < max + 1; i++) {
            System.out.print(i + " ");
            total += i;

        }
        return total;
    }
}

Ответы [ 4 ]

0 голосов
/ 04 декабря 2018

Вы можете получить числа в методе main и отсортировать их в самом методе main.Java 8 упрощает работу с потоками.

    public static void main( String[] args ) throws Exception {

    Framework.startup( );

    Scanner sc = new Scanner( System.in );
    System.out.println( "Two numbers in ascending order" );
    int num1= sc.nextInt( );
    int num2= sc.nextInt( );

    Arrays.asList( num1, num2).stream( ).sorted( ).forEach( System.out::println );
    }
0 голосов
/ 04 декабря 2018

Вы можете ввести числа в методе main, а затем передать их другому методу:

public class AscendingOrder {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Two numbers in ascending order");
        int min = sc.nextInt();
        int max = sc.nextInt();

        int ascending1 = ascending(min, max);
    }

    public static int ascending(int min, int max) {
        int total = 0;

        for (int i = min; i < max + 1; i++) {
            System.out.print(i + " ");
            total += i;
        }
        return total;
    }
}
0 голосов
/ 04 декабря 2018

Вы можете прочитать аргументы командной строки или поместить сканер в основную функцию и передать аргументы

import java.util.Scanner;

public class AscendingOrder {

    public static void main(String[] args) {
        System.out.println("Entered first number is: "+args[0]);  
        System.out.println("Entered Secomd number is: "+args[1]);  
        int ascending1 = ascending(Integer.parseInt(args[0]),Integer.parseInt(args[1]));
    }

    public static int ascending(int min,int max) {

        int total = 0;

        for (int i = min; i < max + 1; i++) {
            System.out.print(i + " ");
            total += i;

        }
        return total;
    }
}
0 голосов
/ 04 декабря 2018

Передайте два входа как параметры вашему методу, что-то вроде:

public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
     System.out.println("Two numbers in ascending order");
     int min = sc.nextInt();
     int max = sc.nextInt();

     int ascending1 = ascending(min, max);
     System.out.println(ascending1);
}

А теперь:

public static int ascending(int min, int max) {
    int total = 0;
    for (int i = min; i < max + 1; i++) {
       System.out.print(i + " ");
       total += i;
     }
     return total;
}

Обратите внимание, что теперь определениеascending() принимает два параметра типа int.Значения передаются из основного метода в метод.

...