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);
}
}
執行截圖如下: