程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> exception-java中命令行參數的問題

exception-java中命令行參數的問題

編輯:編程解疑
java中命令行參數的問題

學習了一點java ,寫程序時遇到一個問題,想讓從命令行中讀取的參數來指導下一步工作可以嗎?

下面是我寫的實現優先級隊列的一個主函數,總是報錯說“Exception in thread "main" the current array has been sortes,now you can execut four commend like:Maximum”
java.lang.ArrayIndexOutOfBoundsException: 0
at com.nana.Queues.main(Queues.java:72)

 public static void main(String[] args){
            System.out.println("the current array has been sortes,now you can execut four commend like:Maximum,");
            int i=0;
            Queues Qu=new Queues();
            Qu.BUILDMAXHEAP(A);
            do{
            switch(args[i]){
                case "Maximum":Qu.Maximum(A);break;
                case"Extract-max":Qu.Extractmax(A);break;
                case"increasekey":System.out.println("please input the number you want to increase and the target:");
                Qu.Increasekey(A, Integer.parseInt(args[i+1]), Integer.parseInt(args[i+2]));break;
                case "exit":i=-2;break;
                case"insert":System.out.println("please input the number you want to insert:");
                    Qu.Insert(A,Integer.parseInt(args[i+1]) );break;
            }
            i++;
        }while(i!=-1);
        } 

最佳回答:


這段代碼錯誤太多!
1.java的main函數啟動參數是在執行時一次性傳入的;
2.出現死循環的dowhile;
3.代碼如果需要健壯,那麼參數個數是必須要判斷的其長度的;

建議:
1.循環使用數組長度界定;
2.如果要逐個寫入參數執行可以調用標准控制台輸入System.in,當然Scanner對輸入流進行了封裝,使用也方便;
這樣就可以實時在程序執行中對輸入的命令執行想要的操作。

希望可以幫到你。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved