Java第一次做業——Java語言基礎

《Java技術》第一次做業

(一)學習總結

1.Scanner實現基本數據的方法java

Scanner能夠輸入數據,能夠對數據進行驗正,存放在Java.util中。git

使用方法

import java .util.Scanner
 Scanner input=new Scanner(System.in); 
 int num=input.nextInt();

例如

import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.print("請輸入數字: ");
        int input=in.nextInt();  //讀取一行數據
        System.out.println(input); 
    }
}

2.Random類和Math類的random()方法產生隨機數的區別和特色。
區別
--
Random使用單個 long 種子建立一個新的隨機數生成器。該種子是僞隨機數生成器的內部狀態的初始值,該生成器可經過方法 next(int) 維護。數組

例如
調用 new Random(seed) 等效於:多線程

Random rnd = new Random();
 rnd.setSeed(seed);

Math類的random返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。返回值是一個僞隨機選擇的數,在該範圍內(近似)均勻分佈。dom

例如 第一次調用該方法時,與如下表達式徹底相同工具

new java.util.Random

特色

Random類是一個類(java.util.Random),裏面含有不少方法。
Math類的random此方法是徹底同步的,可容許多個線程使用而不出現錯誤。可是,若是許多線程須要以極高的速率生成僞隨機數,那麼這可能會減小每一個線程對擁有本身僞隨機數生成器的爭用。學習

3.JDK,JVM,JRE的做用與關係.net

利用JDK開發了屬於咱們本身的JAVA程序後,經過JDK中的編譯程序(javac)將咱們的文本java文件編譯成JAVA字節碼,在JRE上運行這些JAVA字節碼,JVM解析這些字節碼。線程

4.PATH和CLASSPATH的做用設計

PATH環境變量做用是指定命令搜索路徑,在執行命令如javac編譯java程序時,它會到PATH變量所指定的路徑中查找看是否能找到相應的命令程序。咱們須要把jdk安裝目錄下的bin目錄增長到現有的PATH變量中,bin目錄中包含常常要用到的可執行文件如javac/java等待,設置好PATH變量後,就能夠在任何目錄下執行javac/java等工具了。
CLASSPATH環境變量。做用是指定類搜索路徑,要使用已經編寫好的類,前提固然是可以找到它們了,JVM就是經過CLASSPTH來尋找類的。咱們須要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,固然,當前目錄「.」也必須加入到該變量中。

5.C語言與Java對應數據類型的不一樣

Java比C語言多了一個boolean類型,能夠直接返回值真假。

(二)實驗總結

1.猜數遊戲

  • 程序設計思路:在程序裏隨機產生一個數,請用戶輸入一個數,用if...else判斷猜大了、猜小了、猜對了,並提示還剩幾回機會。

    if(a<rw)
          System.out.println("猜小了,剩餘的機會次數爲:"+j);
     else if(a>rw)
          System.out.println("猜大了,剩餘的機會次數爲:"+j);
     else
          System.out.println("猜對了!");

若是猜對了,用if...else判斷是第幾回猜對的,得多少分。用switch...case判斷是否進行下一次遊戲。

System.out.println("是否進行下一輪遊戲,1:是,2:否");
 Scanner inb=new Scanner(System.in);
 int b=inb.nextInt();
 switch(b){
    case 1:System.out.println("輸入一個價格");
           break;
    case 2:System.out.println("一共猜的次數爲:"+i);
           System.out.println("得分爲:"+c);    
           break;
  • 實驗問題分析:
    問題1:不進行下一輪遊戲時,沒能輸出猜的次數和得分
    緣由:case語句直接breakl
    解決方案:加上輸出猜的次數和得分的語句

2.萬年曆

  • 程序設計思路:請用戶輸入一個年份一個月份。編寫一個方法判斷該年是否是閏年,public static boolean isLeap(int year),用if...else判斷,返回值爲boolean型。

    public static boolean isLeap(int year){   //判斷閏年
          if((year%4==0&&year%100!=0)||year%400==0){
              return true;
          }
              return false;

編寫一個方法判斷某年某月有多少天,public static int days(int year,int month),月份爲2月時,調用public static boolean isLeap(int year)方法,返回值爲該月有多少天。

public static int days(int year,int month){//判斷某年某月有多少天
        boolean b;
        b=isLeap(year);
        if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
            return 31;
        }
        else if(month==4||month==6||month==9||month==11)
            return 30;
        else{
            if(b)
                return 29;
        else 
            return 28;
        }
}

編寫一個方法判斷計算某年某月以前距離1900年1月1日的總天數,public static int totalDays(int year,int month),先計算該年距離1900年有多少天,注意是否是閏年,而後計算該月以前到該年1月1日有多少天,把兩個天數相加。

pubilc static int totalDays(int year,int month){ 
        int i,n,d;
        int sum=0,sum1=0,sum2=0;
        for(i=1900;i<year;i++){
            boolean b;
            b=isLeap(i);
            if(b)
                n=366;
            else
                n=365;  
        sum1=sum1+n;
        }
        for(i=1;i<month;i++){
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
                d=31;
            }
    else if(i==4||i==6||i==9||i==11)
        d=30;
    else{
        boolean b;
                b=isLeap(year);
        if(b)
            d=29;
    else 
        d=28;
    }
    sum2=sum2+d;
    }
        sum=sum1+sum2;
        return sum;
    }

編寫一個方法判斷該月第一天是星期幾,public static int weekEnd(int year,int month),判斷方法爲,調用public static int totalDays(int year,int month)方法,1+totalDays%7是幾就是星期幾。

編寫一個輸出某年某月日曆的方法,public static void printCalender(int year,int month),調用public static int weekEnd(int year,int month)和public static int days(int year,int month)這兩個方法,若是該月第一天不是星期日,利用循環輸出\t,利用循環打印輸出日曆,每當輸出\t的個數和日期的個數在一行達到7個時,請換行。

  • 實驗問題分析:
    問題1:日曆一行直接輸出了
    緣由:不會換行
    解決方案:讓輸出\t的個數加上輸出日期的個數與7求餘。

    (三)代碼託管

  • 碼雲commit歷史截圖

(四)學習進度條

代碼行數(新增/累積) 學習時間(新增/累積) 本週學習內容
目標 5000行 300小時
第2-4周 100/100 20/20 學習了數組和方法
第5周
第6周
相關文章
相關標籤/搜索