分支和循环语句(上)

阅读 72

2022-04-16

分支和循环语句(上)

什么是语句?

分支语句

if 语句

1.单分支语句

#include<stdio.h>
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (year < 18)
		printf("未成年\n");
	return 0;
}
#include<stdio.h>
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (year < 18)
		printf("未成年\n");
	printf("不能饮酒\n");
	return 0;
}
#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
		printf("不能饮酒\n");
	}
	return 0;
}

2.双分支语句

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("未成年\n");
	}
	else
	{
		printf("成年\n");
	}
	return 0;
}

3.多分支语句

#include<stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
	{
		printf("青少年\n");
	}
	else if(age>=18&&age<28)
	{
		printf("青年\n");
	}
	else if (age >= 28 && age < 40)
	{
		printf("中年\n");
	}
	else if (age >= 40 && age < 60)
	{
		printf("壮年\n");
	}
	else
	{
		printf("老年");
	}
	return 0;
}

悬空else

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("test1\n");
	else
		printf("test2\n");
	return 0;
}
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
	}
	else
		printf("haha\n");
	return 0;
}

良好的代码风格:

在这里插入图片描述

在这里插入图片描述

例题

1

#include<stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
	{
		printf("是奇数\n");
	}
	else
	{
		printf("不是奇数\n");
	}
	return 0;
}
#include<stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 100; i++)
	{
		if (i % 2 == 1)
		{
			printf("%d ", i);
		}
	}
	return 0;
}

switch

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:printf("星期一\n");
		break;
	case 2:printf("星期二\n");
		break;
	case 3:printf("星期三\n");
		break;
	case 4:printf("星期四\n");
		break;
	case 5:printf("星期五\n");
		break;
	case 6:printf("星期六\n");
		break;
	case 7:printf("星期日\n");
		break;
	}
	return 0;
}
#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:printf("weekdey\n");
		break;
	case 6:
	case 7:printf("weekend\n");
		break;
	}
	return 0;
}

default子句

#include<stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:printf("weekdey\n");
		break;
	case 6:
	case 7:printf("weekend\n");
		break;
	default:printf("输入数据错误\n");
	}
	return 0;
}

例题

#include <stdio.h>
int main()
{
    int n = 1;
    int m = 2;
    switch (n)
    {
    case 1:m++;
    case 2:n++;
    case 3:
        switch (n)
        {
        case 1: n++;
        case 2: m++; n++;
            break;
        }
    case 4:
        m++;
        break;
    default:
        break;
    }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}

循环语句

while循环

#include<stdio.h>
int main()
{
   int i = 0;
   while (i < 10)
   {
   	i++;
   	printf("%d ", i);
   }
   return 0;
}

while语句中的break和continue

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (5 == i)
			break;
		printf("%d ", i);
		i++;
	}
	return 0;
}
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (5 == i)
			continue;
		printf("%d ", i);
		i++;
	}
	return 0;
}

例题

#include <stdio.h>
int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
		putchar(ch);
	return 0;
}
#include<stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("请输入密码:>");
	scanf("%d", &password);
	char ch = 0;
	printf("请确认密码:>");
	int ret = getchar();
	if ('Y' == ret)
	{
		printf("YES\n");
	}
	else
	{
		printf("NO\n");
	}
	return 0;
}
#include<stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("请输入密码:>");
	scanf("%d", &password);
	char ch = 0;
	while ((ch = getchar()) != '\n');
	printf("请确认密码:>");
	int ret = getchar();
	if ('Y' == ret)
	{
		printf("YES\n");
	}
	else
	{
		printf("NO\n");
	}
	return 0;
}
#include <stdio.h>
int main()
{
	char ch = '\0';
	while ((ch = getchar()) != EOF)
	{
		if (ch < '0' || ch > '9')
			continue;
		putchar(ch);
	}
	return 0;
}

精彩评论(0)

0 0 举报