Shirin Isgandarli
Shirin Isgandarli

Reputation: 351

How to pass the validated user inputs to the method parameter?

I have two classes: MyNumbers and MyScanner. I am trying to pass the validated inputs to the calculateSum (int x, int y) method in order to print the final result in the MyScanner class, but I don't know how I can take the user inputs from the MyScanner class to pass them to the validate() method in the MyNumbers class so that it allows the calculateSum() method to perform its task.

P.S. validate() method should be void and parameterless, but calculateSum() method should be string to return the result as a string and take two parameters. I also want the validate() method to prompt for user input and validate the values to make sure that they are in the certain range. This method needs to keep prompting until user inserts a valid number.

How can I achieve this without introducing another variable/implementing setters/ passing variables as a parameter to the validate() method?

public class MyNumbers {
    
    int number1;
    int number2;
    
    public void validate() {
    if (number1 >= 10 && number1 <= 50) {
         if(number2 >= 5 && number2 <= 20){
        System.out.println(calculateSum(number1, number2));
       }
    } 
            
    else {
        System.out.println("Number should be between 10 and 50");
    }
  }


public String calculateSum(int x, int y) {
    
    this.number1 = x;
    this.number2 = y;

    validate();

    return "Sum: " + number1 + number2;
  }
 }


public class MyScanner {

public static void main(String[] args) {

MyNumbers myNumbers = new myNumbers();
Scanner scanner = new Scanner(System.in);

int option = scanner.nextInt();

do{
    switch(option){
        case 1:
            System.out.println("Enter number 1");
            int x = scanner.nextInt();
            System.out.println("Enter number 2");
            int y = scanner.nextInt();
            myNumbers.calculateSum(x, y);
            break;
    }
}

while(option!=0);
  }
 }
 

Upvotes: 0

Views: 433

Answers (1)

MdBasha
MdBasha

Reputation: 451

EDIT :



import java.util.*; 

class MyNumbers {
    
    int number1;
    int number2;
    
    public void validate() {
         int valid=0;
         int x;
         int y;
         
         Scanner s = new Scanner(System.in);
         System.out.println("Welcome!");
         
         do{
                System.out.println("Enter Number 1: ");
                   
                x = s.nextInt();
                            
                if (x >= 10 && x <= 50) {
                    
                     valid=2;
                
                }
                 else {
                     
                    System.out.println("Number 1 should be between 10 and 50");
                }
                 
         }while(valid!=2);
        
        do {
        
            System.out.println("Enter Number 2: ");
             y = s.nextInt();
            
            if(y >= 5 && y <= 20){
                System.out.println(calculateSum(x, y));
                valid=3;
            }
            
             else {
                System.out.println("Number 2 should be between 5 and 20");
            }
            
        
        }while(valid!=3);
    }


    public String calculateSum(int x, int y) {
        
        this.number1 = x;
        this.number2 = y;
    
        return "Sum: " + (number1 + number2);
    }
}

public class Main {

    public static void main(String[] args) {
    
    MyNumbers myNumbers = new MyNumbers();
    myNumbers.validate();

    }
 }

Try


import java.util.*; 

class MyNumbers {
    
    int number1;
    int number2;
    
    public void validate(int number1 , int number2) {
        
        if (number1 >= 10 && number1 <= 50) {
             if(number2 >= 5 && number2 <= 20){
            System.out.println(calculateSum(number1, number2));
           }
        } 
                
        else {
            System.out.println("Number should be between 10 and 50");
        }
    }


    public String calculateSum(int x, int y) {
        
        this.number1 = x;
        this.number2 = y;
    
        return "Sum: " + number1 + number2;
    }
}


public class Main {

    public static void main(String[] args) {
    
    MyNumbers myNumbers = new MyNumbers();
    Scanner scanner = new Scanner(System.in);
    
    int option = scanner.nextInt();
    switch(option){
                case 1:
                    System.out.println("Enter number 1");
                    int x = scanner.nextInt();
                    System.out.println("Enter number 2");
                    int y = scanner.nextInt();
                    myNumbers.validate(x, y);
                    myNumbers.calculateSum(x, y);
                    break;
            }
    
  
    }
 }

Upvotes: 1

Related Questions