Else语句没有打印,想知道我是否在java中错误地从setter方法调用



我正试图用java编写一个程序,创建一个数组。我正在尝试OOP方法。我制作了一个类文件,其中包含一个setter方法和我的数组:

public class MenuTestClass{
private int myMonths[];
private double average; //store average value of numbers
private boolean averageCanBeCalculated;
private int max; // store max number from array. to be calculated

public MenuTestClass(){
myMonths = new int[5];
}
public MenuTestClass(int[] myMonths){
this.myMonths = myMonths;
}
public void setMyMonths(int[] values){ //declare setter method
myMonths = values;
}

在我的主要方法中,数组的元素取自用户:

//Menu loop
int myMonths[] = new int[5];
int index = 0;
int num;
while(choice !=6){

switch (choice){
case 1:
int n = 1;    //int n = number of projects
Scanner sc = new Scanner(System.in);
System.out.println("How many months was your project?");
for(int i=0; i<1; i++){
int a = sc.nextInt();
//if months is lesser than 2/greater than 12
if((a < 2) || (a > 12)){
System.out.println("Please enter an amount between 2 and 12 months");}
//if months is between 2 and 12 add it to the array
else{myMonths[index++] = a;}
}
calc.setMyMonths(myMonths); //creating the object
break;

我正在尝试创建一个函数来显示数组的所有元素。如果数组为空,我希望它显示一条消息来说明这一点。但是,我的else语句不会运行。我正试图弄清楚为什么这是&我是否错误地调用了数组?请参阅下面的代码:

case 2:
if(myMonths.length > 0){
// print the values
for(int i=0; i < myMonths.length; i++){
System.out.println(myMonths[i] + " ");
}
} else {
System.out.println("No values entered");
}

任何帮助都会很棒!提前感谢

您的代码:

for(int i=0; i < myMonths.length; i++){
if(myMonths.length != 0){    //if the array is not empty display all items
System.out.println(myMonths[i] + " ");
}
else{System.out.println("No values entered");} //if array is empty display this message
}

如果是myMonths.length > 0,那么它将检查长度!!

您的代码应该是:

if(myMonths.length > 0){
// print the values 
for(int i=0; i < myMonths.length; i++){
System.out.println(myMonths[i] + " ");
}
} else {
System.out.println("No values entered");
}

更新:

在创建数组之前。。向用户询问尺寸,然后你可以检查是否为空

System.out.println("inter the size:");
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int[] arr = new int[size];
if (arr.length > 0) {
// do your loop
System.out.println("Not Empty");
} else {
// Empty array
System.out.println("Empty");
}

相关内容

最新更新