函数
1、为什么要用函数?
(1)代码结构复杂,不利于阅读,不利于移植
(2)函数是代码块,一个代码块解决一个问题,一个功能对应一个函数
代码块是大括号里面的内容{}
2、怎么用
返回值 函数名称(参数,可以有一个或多个,也可以没有){
}、
void test(void){//没有参数和返回值
if(2>3){//不需要返回值
return;}//return 返回值,提前终端某个函数
}
(1)先声明,后实现
(2)搭框架,不做具体的事情,具体的由每一个函数实现
3、头文件.h函数的声明,变量的声明(不能赋值)因为没有内存
.c具体实现,实现函数的功能,操作变量
函数实现取款机:
#import <Foundation/Foundation.h>
#include <stdlib.h>
int main(int argc, const char * argv[]) {
//保存原始密码
int password = 123;
int inputPwd = 0;
int totalTime = 4;
int totalMoney = 1000;
printf("**************\n");
printf(" 欢迎使用\n");
printf("**************\n");
//一个模块完成一个功能 耦合性降低
printf("请输入密码:");
while (1) {
scanf("%d", &inputPwd);
if (inputPwd == password) {
//密码正确
break;
}else{
totalTime--;
if (totalTime == 0) {
printf("此卡已冻结 请联系客服!\n");
//退出
exit(EXIT_FAILURE);
}else{
printf("密码不正确 请重新输入:");
}
}
}
//密码正确
char choice;
while(1){
printf("**************\n");
printf("1.取款\n");
printf("2.存款\n");
printf("3.设置密码\n");
printf("4.退出\n");
printf("**************\n");
//判断输入是否合法
char ch[20] = {};
while (1) {
//去掉上一次输入的回车符 \n
printf("请选择操作:");
int count = scanf("%s", ch);
if (count != 1) {
printf("输入不合法 ");
} else{
//获取第一个字符
choice = ch[0];
if (choice == '1' || choice == '2' || choice == '3' || choice == '4') {
break;
} else{
printf("输入不合法 ");
}
}
}
//检测到底选择的是什么操作
char choice2;
int newPassword1 = 0;
int newPassword2 = 0;
switch (choice) {
case '1':
//取款
while(1){
int outMoney = 0;
printf("请输入取款金额:");
scanf("%d", &outMoney);
if (outMoney > totalMoney) {
//金额不足
printf("余额不足是否继续(y/n):");
getchar();
choice2 = getchar();
if (choice2 == 'n') {
break;
}
}else{
totalMoney -= outMoney;
printf("取款成功 余额为:%d\n", totalMoney);
break;
}
}
break;
case '2':
printf("请输入存款金额:");
int inputMoney = 0;
scanf("%d", &inputMoney);
totalMoney += inputMoney;
printf("存款成功 余额为:%d\n", totalMoney);
break;
case '3':
while (1) {
printf("请输入新密码:");
scanf("%d", &newPassword1);
printf("请确认密码:");
scanf("%d", &newPassword2);
if (newPassword1 == newPassword2){
password = newPassword1;
printf("更改密码成功\n");
break;
}else{
printf("两次密码不一致 ");
}
}
break;
default:
printf("感谢你的使用 再见!!!\n");
exit(EXIT_SUCCESS);
break;
}
}
return 0;
}
网友评论