#java #methods #int #boolean
#java #методы #int #логическое
Вопрос:
В настоящее время у меня возникает проблема с вызовом каждого из моих методов (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;
}
}
Комментарии:
1. В вашем основном методе не объявлено
x
orn
. Откуда они должны взяться?2. Поскольку вы присваиваете значение только
x
orn
внутри методовevenOdd
иboxMake
, вам не нужно передавать их в качестве аргументов в эти методы. Просто объявите и назначьте переменные внутри метода.
Ответ №1:
Пожалуйста, измените свой код таким образом :
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");
}
}
}
}
Ответ №2:
Сделайте основной метод похожим на этот и удалите сканеры из ваших методов следующим образом:
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;
}
}
Ответ №3:
n
и x
являются локальными переменными в ваших методах. И имейте в виду, что, например, n
from evenOdd()
не имеют ничего общего, кроме имени, с n
from boxMake()
. Если вы хотите использовать n
и x
во всем своем классе, определите их как члены класса.
import java.util.*;
public class Method{
private int n;
private int x;