项目需求
解决项目 5 中存在的问题:
用户名和密码只能输入一次. 如果输入错误, 就没有机会重新输入.
项目实现
- #include <stdio.h>
- int main(void) {
- // 定义变量, 用来表示用户名和密码
- char name[32];
- char password[16];
- // 输入用户名和密码
- while (1) {
- // 输入用户名和密码
- printf("请输入用户名:");
- scanf("%s", name);
- printf("请输入密码:");
- scanf("%s", password);
- if (strcmp(name, "admin") == 0 &&
- strcmp(password, "123456") == 0) {
- break;
- } else {
- printf("用户名或密码错误!\n");
- system("pause");
- system("cls");
- }
- }
- system("cls");
- // 打印功能菜单
- printf("--- 交换机后台管理 ---\n");
- printf("1. 创建账号 \ n");
- printf("2. IP 管理 \ n");
- printf("3. 退出 \ n");
- printf("请选择...");
- return 0;
- }
项目精讲
while 循环
使用场合:
当需要反复执行某些 "过程" 时, 就可以使用 while 循环.
使用方法
while (条件) {
语句
}
break 的使用
死循环
有些场合 (比如, 游戏引擎的主循环, 就是一个死循环)
有些场合, 是要避免死循环.
画流程图
for 循环
从功能上, for 循环和 while 循环是完全等效的!
使用场合
在循环次数已经确定的情况下, 使用 for 循环更方便!
使用方法
for (表达式 1; 表达式 2; 表达式 3){
循环体
}
说明:
表达式 1: 为循环做准备
表达式 2: 循环条件
表达式 3: 改变循环计数
注意:
表达式 1, 表达式 2, 表达式 3, 这 3 个表达式的任意一个或多个, 都可以省略!
但是其中的 ";" 不可以省略!
for (; ; ) {
循环体
}
相当于:
while (1) {
循环体
}
流程图
for 和 while 的选择
1) 当已经确定了循环次数时, 建议使用 for
2) 其他情况, 可以使用 for , 也可以使用 while, 建议使用 while
do-while 循环
使用场合:
先执行一次循环体, 然后再判断条件, 以判定是否继续下一轮循环!
即: 至少执行一次循环体!
使用方法
do {
循环体
} while (条件)
do {}while(0) 的用法, 主要用于 #define 宏定义 (后续课程讲解)
项目练习
1. 独立完成项目 6
2. 打印如下效果, 具体的行数要用户输入.
3. 打印乘法口诀表
4. 让用户输入一个字符串, 然后把这个字符串 "逆转", 并输出.
5. 打印斐波那契数列, 具体的个数由用户输入.
来源: http://www.bubuko.com/infodetail-3342613.html