2 つのメソッド push と pop を使用して、最初に最初にスタックに入れる数字の数をユーザーが入力できるスタックを作成しようとしています。 push は要素をスタックに置き、 pop は要素を一番上に削除します。スタックにさらにスペースがある場合、例外がスローされます。pop を呼び出そうとすると、例外がスローされてもスタックは空になります。質問は少しわかりにくいですが、それは私の英語のせいです
これが私のメインクラスです(アプリケーション)
package com.example.undantag.main;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
Stack2 st = new Stack2();
System.out.println("Stack "+st);
System.out.println("Please enter how many numbers you would like to enter");
Scanner scan = new Scanner(System.in);
int totalnumber = scan.nextInt();
System.out.println("Please enter the number you would like to begin");
int beginnumber = scan.nextInt();
showPush(st, beginnumber, totalnumber);
System.out.println("Please enter how many numbers you would like to delete");
int deletenumber = scan.nextInt();
if(deletenumber > totalnumber){
throw new IllegalArgumentException("Invalid number");
}
else{
for(int i=0; i<=deletenumber; i++)
{
showpop(st);
}
}
}
}
これは2番目のクラスです
package com.example.undantag.main;
public class Stack2 {
public static int i;
static int TotalNumber(int totalnumber){
return totalnumber;
}
static void showPush(Stack st, int a, int totalnumber){
for(int i = 0; i <=totalnumber; i++)
{
st.push(new Integer (a++));
System.out.println("Push("+a + ") ");
}
}
static void showpop(Stack st){
System.out.print("Pop: ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("Stack: "+st);
}
}