C语言--(八)选择结构&循环结构(Lellansin)

本文目录

选择结构

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;	
}

猜你喜欢

转载自blog.csdn.net/zjc910997316/article/details/89023878