Вызов нескольких методов (int) в методе main () - PullRequest
0 голосов
/ 11 марта 2019

У меня в настоящее время проблема с вызовом каждого из моих методов (int) в моем основном методе, получая ошибку «не могу найти переменную» для каждого из моих вызовов.Как я могу исправить свой код, чтобы я мог вызывать каждый метод и иметь вывод для каждого отдельного метода?

Вот мой код:

import java.util.*;
public class Method{

 public static void main(String [] args) { 
  System.out.println(evenOdd(x));
  System.out.println(boxMake(n));
  System.out.println(checkPrime(n));  
 }
 public static boolean evenOdd(int x) {
 Scanner sc = new Scanner(System.in);
  System.out.println("Enter your number to check even or odd: ");
 x = sc.nextInt();
  boolean odd = false;
if(x % 2 ==0){
odd = true;
  System.out.println(odd + " is true.");
 }
return odd;
}

public static void boxMake(int n) {
Scanner sc = new Scanner(System.in);
  System.out.println("Enter your number to make a box: ");
n = sc.nextInt();
for(int i=0; i<n; i++){
  for(int x=0; x<n; x++){
     System.out.print("*");
   }
     System.out.println("");
  }
}

 public static int checkPrime(int n){
 int i;
 int m=0;
 int flag=0;
 Scanner sc = new Scanner(System.in);
   System.out.println("Enter a number to check if prime: ");
 n = sc.nextInt();
 m=n/2;
  if(n==0||n==1){
     System.out.println(n + " is not a prime number");
  }else{
     for(i=2; i<=m; i++){
        if(n % i == 0){
           System.out.println(n + " is not a prime number");
           flag = 1;
        break;
        }
      }
        if(flag == 0){
           System.out.println(n + " is a prime number"); 
        }
     }
      return n;
   }
}

Ответы [ 3 ]

0 голосов
/ 11 марта 2019

n и x - локальные переменные в ваших методах. И имейте в виду, что, например, n из evenOdd() не имеет ничего, кроме имени, общего с n из boxMake(). Если вы хотите использовать n и x во всем классе, определите их как членов класса.

import java.util.*;
public class Method{
private int n;
private int x;
0 голосов
/ 11 марта 2019

Пожалуйста, измените ваш код на это:

public class Example {

    public static void main(String[] args) {
        int x = 0, n = 0, p = 0;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter your number to check even or odd: ");
        x = sc.nextInt();
        evenOdd(x);
        System.out.println("Enter your number to make a box: ");
        n = sc.nextInt();
        boxMake(n);
        System.out.println("Enter a number to check if prime: ");
        p = sc.nextInt();
        checkPrime(p);
        sc.close();
    }

    public static void evenOdd(int x) {
        if (x % 2 == 0) {
            System.out.println(x + " is even.");
            return;
        }
        System.out.println(x + " is odd.");
    }

    public static void boxMake(int n) {
        for (int i = 0; i < n; i++) {
            for (int x = 0; x < n; x++) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }

    public static void checkPrime(int n) {
        int i;
        int m = 0;
        int flag = 0;
        m = n / 2;
        if (n == 0 || n == 1) {
            System.out.println(n + " is not a prime number");
        } else {
            for (i = 2; i <= m; i++) {
                if (n % i == 0) {
                    System.out.println(n + " is not a prime number");
                    flag = 1;
                    break;
                }
            }
            if (flag == 0) {
                System.out.println(n + " is a prime number");
            }
        }
    }
}
0 голосов
/ 11 марта 2019

Сделайте так, чтобы основной метод выглядел следующим образом, и удалите сканеры из ваших методов следующим образом:

 public static void main(String [] args) { 
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your number to check even or odd: ");
      x = sc.nextInt();
      System.out.println("Enter your number to make a box: ");
      n = sc.nextInt();
      System.out.println(evenOdd(x));
      System.out.println(boxMake(n));
      System.out.println(checkPrime(n));  
     }
public static boolean evenOdd(int x) {
  boolean odd = false;
if(x % 2 ==0){
odd = true;
  System.out.println(odd + " is true.");
 }
return odd;
}

public static void boxMake(int n) {
for(int i=0; i<n; i++){
  for(int x=0; x<n; x++){
     System.out.print("*");
   }
     System.out.println("");
  }
}

 public static int checkPrime(int n){
 int i;
 int m=0;
 int flag=0;
 m=n/2;
  if(n==0||n==1){
     System.out.println(n + " is not a prime number");
  }else{
     for(i=2; i<=m; i++){
        if(n % i == 0){
           System.out.println(n + " is not a prime number");
           flag = 1;
        break;
        }
      }
        if(flag == 0){
           System.out.println(n + " is a prime number"); 
        }
     }
      return n;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...