//函數:具有特定功能的代碼塊
/*
* 庫函數:系統已經定義好的功能模塊! 例如:next()
* 自定義函數: 程序員自行定義進行功能封裝!
* 定義規則:
* public static 返回值類型 函數名(參數列表){
* 函數體
* }
*
* void 代表沒有返回值,返回值爲空
* 注意:
* 函數分爲兩部分 : 定義和調用!
* 默認定義完的函數絕對不會執行,必須要調用!
*
*
* 注意:
* 形參:形式上的參數,起佔位作用!沒有確切的值!在函數的定一部分
* 實參:實際上真實有效存在的參數值,在函數調用部分
* 並實參會將值傳給形參!傳值是單向的!
*
* 局部和全局
* 在java中可以劃分局部作用域的是{}
* 在{}中定義的變量,僅僅在{}內部使用
*
* 返回值return
* 1.在哪裏調用函數 返回值就返回哪裏
* 2.return 可以直接結束代碼的執行!所以代碼不要寫在return 之下!
*
* 現在可以理解爲,形參會將數據帶入到本函數中!
* 返回值會將數據帶出函數帶給主調函數(就是調用函數的部分)
*
* 在函數A中,調用函數B,叫做函數的嵌套調用!!!
* 在java中禁止在函數A中定義函數B!
*
*/
簡單代碼示例:
1.定義一個無參數無返回值的函數:
public static void printText() {
//這是一個無參數無返回值的函數
System.out.println("傻屌凱是沙雕");
}
2.定義一個有參數返回值的函數:
//定義函數 用於求和
public static void sumValue(int a, int b) {
//這個是有參數無返回值的函數
System.out.println("兩數之和是:" + (a + b));
}
3.定義函數,返回函數最大值:
//求兩個數的最大值
public static int twoMax(int a, int b) {
int max = a > b ? a : b;
return max;
}
//求三個數的最大值
public static int threeMax(int a, int b, int c) {
return twoMax(twoMax(a, b) , c);
}
//求四個數的最大值
public static int fourMax(int a, int b, int c, int d) {
return twoMax(threeMax(a, b, c), d);
}
4.判斷一個數是否是質數:
//定義函數,用於判斷一個數是不是質數
public static void number(int num) {
if(num == 1) {
System.out.println("不是一個質數");
}
int count = 0;
for(int i = 2; i < num; i++) {
if(num % i == 0) {
count++;
}
}
if(count == 0) {
System.out.println(num + "是一個質數" );
}else {
System.out.println(num + "不是一個質數");
}
}
5.定義函數,給數組排序:
//定義函數,用於給數組排序
public static void sort(int[] array) {
Scanner scanner = new Scanner(System.in);
System.out.print("請選擇是升序還是降序(0.升序 1.降序): ");
int choose = scanner.nextInt();
int temp;
for(int i = 0; i < array.length - 1; i++) {
for(int j = 0; j < array.length - i - 1; j++) {
if(choose == 0) {
if(array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}else {
if(array[j] < array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
for(int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
6.定義函數,實現彩票機選多注功能
//隨機單注彩票,使用函數可以讓用戶自行輸入機選的注數,並且輸出機選多注的結果
//number表示用戶選的注數
public static void medic(int number) {
Random random = new Random();
int[] arr = new int[7];
for(int k = 0; k < number; k++) {
arr[0] = random.nextInt(33) + 1;
for(int i = 1; i < 6; i++) {
arr[i] = random.nextInt(33) + 1;
for(int j = 0; j < i; j ++) {
if(arr[i] == arr[j]) {
i--;
break;
}
}
}
arr[6] = random.nextInt(17) + 1;
System.out.print("紅球:");
for(int i = 0; i < arr.length - 1; i++) {
System.out.print(arr[i] + " ");
}
System.out.print("藍球:" + arr[arr.length - 1]);
System.out.println();
}
}