1. 程式人生 > >Java的輸入和輸出、if...else if...else判斷、Java中列印陣列、Java中陣列排序、檢視函式方法的原始碼、命令列引數

Java的輸入和輸出、if...else if...else判斷、Java中列印陣列、Java中陣列排序、檢視函式方法的原始碼、命令列引數

Java的輸入和輸出:

輸入:

import java.util.Scanner

Scanner s = new Scanner(System.in);

//通過new Scanner(System.in)建立一個Scanner物件,控制檯會一直等待輸入,直到敲回車鍵結束,把所輸入的內容傳給Scanner,作為掃描物件。要獲取輸入的內容,則只需要呼叫Scanner的nextLine()或nextInt()或nextdouble()等方法。

String name=s.nextLine();//讀取一個字串輸入,直到回車換行

int age=s.nextInt();//或者讀取一個int型整數

如:

讀取一個字串輸入。

import java.util.Scanner;

public class test {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		String name=s.nextLine();
		System.out.println(name);
		System.out.print("\n");
		System.out.print(name);
	}

}

讀取一個整數輸入。

import java.util.Scanner;

public class test {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		int age=s.nextInt();
		System.out.println(age);
		System.out.print("\n");
		System.out.print(age);
	}

}

輸出:

System.out.println();//輸出並換行

System.out.print();//輸出但不換行

System.out.printf();//格式化輸出

如:

public class test {

	public static void main(String[] args) {
		System.out.println("hello"+"你好");
		System.out.print("你好我不想換行");
		System.out.print("前面不換行所以我跟著上一句");
		System.out.println();
		double pai=3.1415926;
		System.out.printf("pai=%7.2f",pai);
	}
}

執行截圖如下:

if...else if...else判斷:

這和C語言中基本一樣。

如:

import java.util.Scanner;

public class test {

	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		int n=s.nextInt();
		if(n>60)
			System.out.println("n>60");
		else if(n>80)
			System.out.println("n>80");
		else
			System.out.println("其他情況");
	}
}

執行截圖如下:

注意:

在Java中,浮點數判斷相等時,用==判斷是不靠譜的。我們可以利用Math.abs(x-0.1)<0.00001這樣小於某個臨界值即算作相等來判斷。

如:

public class test {

	public static void main(String[] args) {
		double x=1-0.000009/10;
		if(Math.abs(x-1)<0.00001)
			System.out.println("x等於1");
	}
}

如果是引用型別的變數,如字串變數,==符號判斷的是其是否指向同一個字串物件,而要判斷字串的內容是否相等,要使用equals()函式。

如:

public class test {

	public static void main(String[] args) {
		String s1="ABC";
		String s2="ABC";
		String s3=s1;
		if(s1.equals(s2))
			System.out.println("s1等於s2");
		if(s1==s3)
			System.out.println("s1與s3指向同一個字串物件");
	}
}

如果變數為null,則呼叫equals()會報錯。我們可以通過短路運算子&&來避免這種情況。

如:


public class test {

	public static void main(String[] args) {
		String s1=null;
		String s2="ABC";
		if(s1!=null&&s1.equals(s2))
			System.out.println("s1等於s2");
	}
}

swtich語句、while迴圈、do while迴圈、for迴圈、break語句、continue語句均與C語言中類似。

注意:

要想在ecliipse中避免遺漏switch中的break語句,可點選window->preferences->java->complier->Errors/Warnings,switch case fall-through和switch is missing default case全部選為warning。

Java中列印陣列:

由於陣列變數是引用型別,直接列印陣列變數得到的是變數名的地址,要列印陣列元素,我們可以用for迴圈或使用Arrays.toString()方法。

如:

import java.util.Arrays;

public class test {

	public static void main(String[] args) {
		int[] ns= {1,2,3,4,5,8};
		System.out.println(ns);
		System.out.println(Arrays.toString(ns));
	}
}

Java中陣列排序:

氣泡排序:

import java.util.Arrays;

public class test {

	public static void main(String[] args) {
		int[] ns= {28,12,89,73,65,18,96,50,8,36};
		for(int i=0;i<ns.length;i++) {
			for(int j=i;j<ns.length-1;j++) {
				if(ns[j]>ns[j+1]) {
					int temp=ns[j];
					ns[j]=ns[j+1];
					ns[j+1]=temp;
			}
		}
	}
		System.out.println(Arrays.toString(ns));
	}
}

執行截圖如下:

使用Arrays.sort()方法,該方法對於元素多的陣列進行快速排序,對於元素少的陣列進行氣泡排序。

import java.util.Arrays;

public class test {

	public static void main(String[] args) {
		int[] ns= {28,12,89,73,65,18,96,50,8,36};
		Arrays.sort(ns);
		System.out.println(Arrays.toString(ns));
	}
}

執行截圖如下:

注意:

上述兩種方法都修改了陣列本身的元素引用。

檢視函式方法的原始碼:

在eclipse中快速檢視Java中某個函式或方法的原始碼:按住CTRL鍵,點選方法名如sort,就可以開啟其方法的原始碼檔案。

如果沒有的話,點選Attach Source,JDK的原始碼一般位於JDK所在資料夾中的src.zip中。

這個方法適用於IDEA、Pycharm。

命令列引數:

命令列函式是一個String[]陣列,args為陣列變數名,我們可以向這個陣列中傳入任意數量的引數變數名。命令列引數由JVM虛擬機器接收使用者的輸入並傳給Main()方法。

比如我們可以在cmd中javac 檔名.java編譯某個.java檔案,然後輸入java 檔名 -s -t -version。

-s -t -version均為傳入的引數。檢測這些傳入的引數變數名,在Main函式中可設定if判斷來執行一些操作。

我們還可以在eclipse中選擇Main.java,選擇run->run configurations,在Arguments中填寫我們要傳入的引數變數名。

如:

public class test {

	public static void main(String[] args) {
		System.out.println(args.length);
		for(String arg:args)
			System.out.println(arg);
	}
}

執行截圖如下: