課程:Java程序設計 班級:1652班 姓名:劉津甫 學號:20165234java
指導教師:婁嘉鵬 實驗日期:2018年4月2日vim
實驗時間:15:35 - 17:15 實驗序號:實驗一安全
實驗名稱:Java開發環境的熟悉網絡
實驗題目:實現凱撒密碼並進行安全加固,並進行測試(正常狀況,異常狀況,邊界狀況)dom
實驗內容:
1. 使用JDK編譯、運行簡單的Java程序;
2. 使用IDEA 編輯、編譯、運行、調試Java程序。eclipse
實驗要求:
1. 沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程;
2. 完成實驗、撰寫實驗報告,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等);
3. 實驗報告中統計本身的PSP(Personal Software Process)時間;
4. 嚴禁抄襲。編輯器
1. 我提早創建好了文件夾 20165234、目錄 20165234exp1 ;ide
2. cd 20165234exp1 進入到目錄中;函數
3. mkdir src
、 mkdir bin 創建src、bin目錄;工具
4. javac -d bin src/Hello.java 、 java -cp bin ljf.Hello 編譯運行代碼。
查看目錄樹:
用 vim 編輯的代碼以下:
顯示項目視圖:按「Alt+1」
新建Java類:用鼠標在「src」上點擊右鍵,選擇「New」->「Java Class」
生成main方法:在代碼編輯窗口中輸入「psvm」,而後按「tab」
生成 System.out.println() :
在代碼編輯窗口中輸入「sout」,而後按「tab」
編譯,運行程序:「Run」->「Run...」,快捷鍵「Alt+Shift+F10」
程序設計中有三類錯誤:
1. 編譯時錯誤:語法錯誤,初學者易犯
2. 運行時錯誤:異常處理
3. 邏輯錯誤:能編譯運行,但運行結果不對
邏輯錯誤是你們學習中遇到最多的錯誤,要學會經過調試(Debug)來定位邏輯錯誤,經常使用技能有:
1. 自頂向下進行調試
2. 學會設置斷點(行斷點/函數斷點/條件斷點/臨時斷點)
3. 學會單步運行
4. 循環的調試
5. 函數(方法)的調試
6. 二分法定位錯誤
...
如下是調試程序的步驟:
在要設置斷點的行號旁用鼠標單擊一下就好了(或使用 Ctrl+F8 快捷鍵)。在第5行設斷點:
單擊菜單「Run」->「Debug...」(或使用 Alt+Shift+F9 快捷鍵)開始調試Java程序,程序停留在了第5行:
經過單步運行讓程序運行到第6行,單步運行有兩種:Step Into(快捷捷F7)和Step Over(快捷捷F8)
兩種單步運行功能在運行語句時沒有區別,在執行方法調用語句時,Step Into
會跳入方法實現,Step Over
會直接執行完方法,實際使用中咱們優先使用Step Over
,只有方法執行出錯了,說明程序問題在被調用方法中,這時再回來經過Step Into
進入方法進行調試。
單擊一下Step Over
圖標(或F8
),程序停在了第5行,這時查看變量i的值,會看到sum等於11。
單步執行效率比較慢,若想讓程序直接運行到第9行,首先咱們要在第9行設置斷點,而後單擊Resume
圖標(快捷鍵F9
),程序就運行到了第11行:
在第9行左邊斷點處單擊鼠標右鍵,彈出斷點屬性框,可設置條件「i==50」:
按一下F9,能夠查看i的是50了:
斷點只中斷一次,若是想把第9,10行的for循環一會兒運行完,就須要在第12行設個條件斷點。在第十二行設個斷點,鼠標右擊斷點,點「More」或按快捷鍵 Ctrl+Shift+F8 打開斷點設置窗口,選中「Remove Once hit」
當懷疑某個方法出錯了時,就能夠設置方法斷點。把光標移到方法中的任一行,使用菜單「Run」->「Toggle Method Breakpoint」.
個人學號後兩位是34,題目總數爲9,所以個人題號爲8.
代碼以下:
import java.util.Random; import java.util.Scanner; public class exercise { public static void main(String[] args) { Random rd = new Random(); int a = rd.nextInt(100); System.out.println("請輸入100之內的數:"); Scanner input = new Scanner(System.in); try { for (int i = 0; i < 3; i++) { int b = input.nextInt(); if (b == a) { System.out.println("你猜對了!"); break; } else if (b < a) { System.out.println("你猜小了"); } else System.out.println("你猜大了"); } } catch (Exception e) { System.out.println("輸入有誤,請輸入100之內的數字"); } } }