基础知识--方法,数组等
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+"*"
