2018-2019-2 20175215 實驗一《Java開發環境的熟悉》實驗報告


一、實驗內容及步驟

1.使用JDK編譯、運行簡單的Java程序

  • cd code進入code文件夾
  • mkdir 20175215exp1創建20175215exp1文件夾
  • ls查看當前目錄
  • cd 20175215exp1,用pwd查看當前工作路徑
  • vim Hello.java編譯Hello.java 文件
  • javac -d . Hello.java編譯代碼
  • java Hello運行代碼

實驗截圖如下

2.使用IDEA調試Java程序

  • 設置斷點
  • 單步運行
    • step into (快捷鍵F7)
    • step over (快捷鍵F8)
  • 兩個斷點之間的跳躍Resume(快捷鍵F9)
  • 設置條件斷點

實驗截圖如下




3.實驗練習

7, 實現求兩個數的最大公約數和最小公倍數的功能,數從命令行輸入,並進行測試(正常情況,異常情況,邊界情況)。
代碼為:

import java.util.*;
public class Experiment {
    public static void main(String[] args) {
        Calculate  cal = new Calculate();
        Scanner reader = new Scanner(System.in);
        int tmp,x,y,i,j;
        i=reader.nextInt();
        j=reader.nextInt();
        if(i>j){
            tmp=i;
            i=j;
            j=tmp;
        }
        x=cal.gcd(i,j);
        y=i*j/x;
        System.out.println(i+"和"+j+"的最大公約數為"+x+",最小公倍數為"+y);
    }
}
public class Calculate{
    int gcd(int a, int b){
        int k=1;
        while(k!=0){
            k=b%a;
            b=a;
            a=k;
        }
        return b;
    }
}

實驗截圖:
正常情況:

異常情況(加入負數之后最小公倍數無法正確計算):

邊界情況:

4.實驗過程中遇到的問題以及解決方案

(1)斷點調試中碰到的問題以及解決方案

實驗過程中,在斷點調試的時候設置值一次運行的時候總是會碰到問題,發現是Remove once hit沒選中

選中紅圈部分內容就可以了

(2)程序調試中碰到的問題以及解決方案

問題:出現如圖所示的/ by zero的問題

解決方案:算法錯誤,修改代碼后糾正。

(3)命令行輸入中碰到的問題以及解決方案

  • 問題:用教材P47中的案例,想用數組來實現輸入,發現不可行,導致無法繼續后續的程序
  • 解決方案:直接使用變量來接受命令行輸入

二、實驗體會與總結

  • 實驗過程本身比較簡單,但還需要細心,實驗中碰到的兩個問題都是細節問題,第一遍做的時候沒有細心就沒發現問題,導致沒有第一時間調試成功。
  • 使用調用其他類的方法可以讓主類中的功能更為直白,但我這次的實驗中的代碼還是沒做到最簡化,希望下次能使用面向對象的思維將主類中的作用更加直白。

參考資料
1.最大公約數_百度百科
2.最小公倍數_百度百科
3.2018-2019-2 20175313 實驗一《Java開發環境的熟悉》實驗報告
4.編程實現輸入兩個整數,輸出其最大公約數和最小公倍數。
5.Java編程,輸入兩個數,輸出兩個數的和。
6.java.lang.ArrayIndexOutOfBoundsException異常分析及解決
7.Exception in thread "main" java.lang.ArithmeticException: / by zero


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com