函数
什么是函数?
Java中的函数是一组代码,用来完成一个特定的任务。
我们见过的函数:主函数。
除了主函数以外,还可以定义其它的函数,供主函数调用。
在面向对象中,函数被叫做方法。
函数的作用:
- 避免冗余代码
- 提高代码的可维护性
- 提高代码的重用性
- 提高代码的灵活性
函数的意义:
把统一的功能集中放在一个函数中,利于分工。
定义的位置:
类的内部,其他函数的外部,定义的顺序随意。
函数名、参数表、返回值类型统称为函数的三要素,在函数的声明中缺一不可。
public static 返回值类型 函数名 (参数表) { …… }
- 返回值类型:
- 表示函数执行以后返回的结果的数据类型
- 可以是Java中的任何数据类型
- 如果没有结果则为void
函数名(参数)
函数调用时传递的参数叫实参
函数调用的过程中,会把实参的值传递给函数的形参
调用时,实参的个数、类型、顺序必须和定义时相同
函数的调用: 如果被调用的函数有返回值,则可以把函数调用看成是表达式
表达式的类型为函数的返回值类型
表达式的值为函数的返回值
调用函数时,程序的流程会进入到被调用的函数中
被调用的函数结束后,程序的流程会回到函数调用点
函数的调用: 如果被调用的函数有返回值,则可以把函数调用看成是表达式
表达式的类型为函数的返回值类型
表达式的值为函数的返回值 调用函数时,程序的流程会进入到被调用的函数中
被调用的函数结束后,程序的流程会回到函数调用点
函数调用时程序执行的流程:
void main ( ) { …… method1 ( ); …… method1 ( ); …… }
函数的嵌套调用:
一个函数中又调用了其它函数,叫做函数的嵌套调用。
一个函数的形参在调用其他函数时,可以作为实参传值。
ATM改进:
package com.mycode; import java.util.Scanner; public class four { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double balance = 1000000.0; //定义账户余额 boolean f=false; f = dengLu(f); while (f){ if (f == true) { //登录界面 System.out.println("登录成功\n\t请选择你需要的服务"); System.out.println("1.查询账户余额"); System.out.println("2.存款"); System.out.println("3.取款"); System.out.println("4.取卡"); int s = scanner.nextInt(); //定义一个输入选项 switch (s) { //编辑菜单 case 1: System.out.println("您的账户余额为:" + balance); break; case 2: cunK(balance, scanner); break; case 3: quK(balance, scanner); break; case 4: System.out.println("谢谢使用,再见!"); return; default: System.out.println("输入错误,请重新输入"); } }} } public static boolean dengLu(boolean f) { int password=123456; f = false; //定义f不正确 Scanner scanner = new Scanner(System.in); for (int j = 3; j >= 0; j--) { //输入密码次数 System.out.println("请输入密码"); int a = scanner.nextInt(); if (a == password) { //输入正确的时候结束 f = true; break; } else { //否则从新输入 System.out.println("密码错误:请从新输入密码\n" + "剩余" + j + "次机会"); } } return f; } public static void cunK(double balance,Scanner scanner){ System.out.println("1,人民币\t 2,美元"); int i=scanner.nextInt(); switch (i){ case 1: for (;;){ System.out.println("请输入你想要存的的人民币"); double money = scanner.nextDouble(); if (money % 100 == 0 & money >= 100) { balance += money; System.out.println("存款成功\n账户余额为:" + balance); break; } else { System.out.println("请输入100的倍数"); }} break; case 2: for (;;){ System.out.println("请输入你想要存的的美元"); double dollor = scanner.nextDouble(); if (dollor % 100 == 0 & dollor >= 100) { balance += (6.3965*dollor); System.out.println("存款成功\n账户余额为:" + balance); break; } else { System.out.println("请输入100的倍数"); }} break; } } public static void quK(double balance,Scanner scanner){ System.out.println("1,人民币\t 2,美元"); int i=scanner.nextInt(); switch (i){ case 1: for (;;){ System.out.println("请输入你想要取走的人民币"); double quk = scanner.nextDouble(); if (quk <= balance & quk % 100 == 0 & quk >= 100) { balance -= quk; System.out.println("取款成功\n账户余额:" + balance); break; } else if (quk > balance) { System.out.println("您的余额不足。"); } else { System.out.println("请输入100的倍数"); }} break; case 2: for (;;){ System.out.println("请输入你想要取走的美元"); double dollic = scanner.nextDouble(); if (dollic <= balance & dollic % 100 == 0 & dollic >= 100) { balance -= (6.3965*dollic); System.out.println("取款成功\n账户余额:" + balance); break; } else if (dollic > balance) { System.out.println("您的余额不足。"); } else { System.out.println("请输入100的倍数"); }} break; } } }