本文目录
选择结构
1. if() else
2. switch() case:
循环结构
1. while()
2. do while()
3. for ()
终止循环:
1. continue 终止该次循环
2. break 终止该循环
---------------------------------------选择结构---------------------------------------
选择结构
1. if() else
2. switch() case:
if() else
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int salary = 2500;
int rent = 850;
int cost = 1000;
if (salary > (rent + cost)) {
printf("还过得下去");
}
else if (salary < (rent + cost)) {
printf("活不下去了");
}
else {
printf("what");
}
Sleep(10000);
return 0;
}
switch() case:
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
char cmd;
printf("确定要删除吗?");
scanf("%c", &cmd); // %c字符 %s字符串
switch(cmd) {
case 'Y':
printf("文件正在删除\n");
break;
case 'N' :
printf("取消删除\n");
break;
default:
printf("用户未响应,操作取消\n");
}
Sleep(10000);
return 0;
}
switch穿透: case最后加break(不见break不死心)
如果case 'y':后面没有break, 就继续执行后面的case 'Y':,直到遇到后面的break
switch(cmd) {
case 'y':
case 'Y':
printf("文件正在删除\n");
break;
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
char cmd;
printf("确定要删除吗?");
scanf("%c", &cmd); // %c字符 %s字符串
switch(cmd) {
case 'y':
case 'Y':
printf("文件正在删除\n");
break;
case 'n':
case 'N' :
printf("取消删除\n");
break;
default:
printf("用户未响应,操作取消\n");
}
Sleep(10000);
return 0;
}
录入成绩,判断
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int score;
int cmd;
printf("确定要删除吗?");
scanf("%d", &cmd); // %c字符 %s字符串
score = cmd/10;
switch(score) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf("不及格\n");
break;
case 6:
case 7:
case 8:
printf("及格\n");
break;
case 9:
case 10:
printf("满分\n");
break;
}
Sleep(10000);
return 0;
}
---------------------------------------循环结构---------------------------------------
循环结构
1. while()
2. do while()
3. for ()
while循环
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int i = 0;
while(i<10) {
printf("%d", i);
i++;
}
Sleep(10000);
return 0;
}
do while循环
先执行后判断,这与while不同
do {
...
}while(c != 'q'); // 不要忘记这里的分号
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
char c;
do {
printf("请问你是q吗?(Y/N)\n");
scanf("%c", &c); // 问题出在这里,如果是“%c”就会出现下图问两次情况
// %s字符串%d整数都没事
}while(c != 'q'); // 不要忘记这里的分号
Sleep(10000);
return 0;
}
为什么会循环两次?
下面的正常:
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int c;
do {
printf("*********************\n");
printf("*请问你是q吗?(Y/N)*\n");
printf("*********************\n");
scanf("%d", &c);
}while(c != 1234); // 不要忘记这里的分号
Sleep(10000);
return 0;
}
for循环
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int i;
for(i = 0; i < 10; i++) {
printf("%d ", i);
}
Sleep(10000);
return 0;
}
----------------------------------终止循环---------------------------------
continue 与break
终止循环:
1. continue 终止该次循环
2. break 终止该循环
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int i;
for(i = 0; i < 10; i++) {
if(i == 3) {
continue; // continue 终止该次循环
}
printf("%d ", i);
}
Sleep(10000);
return 0;
}
#include<stdio.h>
#include<windows.h>
#include<string.h>
int main() {
int i;
for(i = 0; i < 10; i++) {
if(i == 3) {
break; //break 终止该循环
}
printf("%d ", i);
}
Sleep(10000);
return 0;
}