基礎知識--方法,陣列等
阿新 • • 發佈:2021-07-08
package com.Leo.struct;
import java.util.Scanner;
public class calculate {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入密碼:");
int i = 3;
while (i>0) {
String passWord = scanner.nextLine();
if (passWord.equals("1qaz2wsxC")) {
System.out.println("密碼正確,歡迎使用");
System.out.println("請選擇功能:");
functionChoose(scanner.nextInt());
} else {
System.out.println("密碼錯誤,請重新輸入");
}
i--;
}
scanner.close();
}
public static void functionChoose(int i){
switch (i){
case 1:
myadd();
break;
case 2:
//mydid();
break;
}
}
public static void myadd(){
double sum = 0;
double numOfNum = 0;
System.out.println("請輸入數字,每個數字以回車結束,輸入其他字元退出功能:");
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextDouble()){
double num = scanner.nextDouble();
numOfNum++;
sum += num;
System.out.println("當前"+numOfNum+"個輸入的數字和為"+sum);
}
System.out.println("總和為"+sum);
scanner.close();
}
}
方法過載
當存在相同的函式名,但形式引數不同的函式:
package com.Leo.method;
public class demo01 {
public static void main(String[] args) {
//修飾符 返回值型別 方法名(引數型別 引數名){方法體 return 返回值}
int max = max(1,2);
int max2 = max(1,4,5);
System.out.println(max);
System.out.println(max2);
}
public static int max(int a, int b){
int result = a;
if (a<b){
result = b;
}
return result;
}
public static int max(int a,int b,int c){
int result = a;
if(a<b){
result = b;
}
if (result<c){
result = c;
}
return result;
}
}
例如上例中,兩個比較大小的方法max(),且返回值均為Int型別,但實際上,max呼叫的是第一個函式,max2呼叫的是第二個函式;
規則
方法名必須相同
引數列表必須不同(個數不同、型別不同、或引數排列順序不同等)
方法的返回型別可以相同也可以不同
僅僅返回型別不同不足以成為方法的過載
可變引數
JAVA支援傳遞同類型的可變引數給一個方法:
在方法的宣告中,給指定的引數型別後邊加一個省略號
一個方法僅可指定一個可變引數,且必須是最後一個引數
遞迴
即自己呼叫自己;
能不用就不用遞迴
加密計算器改進
package com.Leo.method;
import java.util.Scanner;
public class MyCalculateTry2 {
public static void main(String[] args) {
MyCalculateTest myCalculateTest = new MyCalculateTest();
Scanner scanner = new Scanner(System.in);
boolean flag = true;
boolean flag2 = true;
int time = 1;
System.out.println("歡迎使用計算器");
while (flag2){
System.out.println("請輸入密碼:");
String pw = scanner.nextLine();
if (!pw.equals("1qaz2wsxC")){
System.out.println("輸入錯誤");
}else {
flag2 = false;
}
}
while (flag){
System.out.println("這是您第"+time+"次使用計算器");
if (time>1){
System.out.println("是否繼續使用計算器?");
String choice = scanner.next();
if (choice.equals("n")){//注意是"n",不是單引號'n'
flag = false;
break;
}
}
System.out.println("請輸入第一個數字");
double num1 = scanner.nextDouble();
System.out.println("請輸入所使用的計算方法:(+,-,*,/)");
String cal = scanner.next();
System.out.println("請輸入第二個數字");
double num2 = scanner.nextDouble();
double result = 0;
switch (cal){
case "+":
result = num1 + num2;
System.out.println(num1+"+"+num2+"="+result);
break;
case "-":
result = num1 - num2;
System.out.println(num1+"-"+num2+"="+result);
break;
case "*":
result = num1 * num2;
System.out.println(num1+"*"+