0
点赞
收藏
分享

微信扫一扫

【C语言】分支语句与循环语句

玉新行者 2022-02-05 阅读 48

目录

一、分支语句

1、if语句

 语法

 例子

2、switch语句

语法

例子

二、循环语句

1、while循环

语法

例子

getchar()、putchar()

2、for循环

语法

例子

3、do……while()循环

语法

例子


一、分支语句

1、if语句

  •  语法

  •  例子

//else悬空
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
        else                        //else与最近的if匹配,打印结果为空
            printf("haha\n");
    return 0;
}
//练习1判断一个数是否为奇数
#include <stdio.h>
int main()
{
    int num = 15;
    if (num % 2 == 1)
        printf("奇数\n");
        
    return 0;
}
//练习2输出1-100之间的奇数
#include <stdio.h>
int main ()
{
    int i = 1;
    while (i <= 100)
    {
        printf("%d ",i);
        i += 2;
    }
    
    return 0;
}

2、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;
}
//break语句的作用
#include <stdio.h>
int main ()
{
    int day = 0;
    scanf("%d", &day);
    switch (day)            
    {
    case 1:                 //没有break依次向下滑
    case 2:
    case 3:
    case 4:
    case 5:
        printf("工作日\n");
        break;
    case 6:
    case 7:
        printf("休息日\n");   
        break;                                            
    }
    
    return 0;
}
//default子句
#include <stdio.h>
int main ()
{
    int day = 0;
    scanf("%d", &day);
    switch (day)            
    {
    case 1:                 //没有break依次向下滑
    case 2:
    case 3:
    case 4:
    case 5:
        printf("工作日\n");
        break;
    case 6:
    case 7:
        printf("休息日\n");   
        break;
    default:                        //其他选项的出口,且不用考虑顺序
        printf("输入错误\n");
        break;                                                        
    }
    
    return 0;
}
//练习
#include <stdio.h>
int main()
{
    int n = 1;
    int m = 2;
    switch (n)                        //n=1,从case 1进入
    {
        case 1:m++;                   //n=1,m=3 
        case 2:n++;                   //n=2,m=3 
        case 3:
            switch (n)                //n=2,从case 2进入
            {
                case 1:n++;
                case 2:n++;m++;       //n=3,m=4 
                    break;            //跳出所在switch语句                    
            }
        case 4:m++;                   //进入case 4,n=3,m=5;         
            break;                    //跳出所在switch语句
        default:
            break;                                                                    
    }
    printf("m = %d, n = %d", m, n);
    
    return 0;
}

二、循环语句

1、while循环

  • 语法

  • 例子

//打印1~10
#include <stdio.h>

int main()
{
    int i = 1;
    while (i <= 10)
    {
        printf("% d ", i);
        i++;
    }

    return 0;
}
  • break、continue语句
#include <stdio.h>
//在while循环中,break永久的终止循环
//在while循环中,continue跳过本次循环continue后边的代码,直接去判断部分,看是否执行下一次循环
int main()
{
    int i = 1;
    while (i <= 10)
    {
        if (i == 5)
            break;          

        printf("% d ", i);
        i++;
    }

    return 0;
}
  • getchar()、putchar()

#include <stdio.h>
//getchar()获取标准输入字符
//正确返回字符的ascii码值,是整型int,错误返回EOF(end of file文件结束标志)
int main()
{
     int ch = getchar();
     //printf("%c\n", ch);
     putchar(ch);//输出一个字符
     
     return 0;   
}
#include <stdio.h>
int main()
{
    int ch = 0;
    while ((ch = getchar()) != EOF)//获取的字符正确
//EOF本质是-1不可能有这个ascii码值
    {
        putchar(ch);    
    }
    //crtl+z——getchar结束读取,相当于没有输入返回EOF
   
    reutrn 0;
}

#define #define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("请输入密码:");
	scanf("%s", password);        //输入123456\n,
        //scanf取走123456,剩下\n被getchar()直接取走没有等待
        getchar();                    //故需要前置一个getchar()清除缓冲区           
	printf("请确认密码(Y/N):");
	int ch = getchar();
	if (ch == 'Y')
	{
		printf("确认成功\n");
	}
	else
	{
		printf("确认失败\n");
	}

	return 0;

}

 

#define #define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char password[20] = { 0 };
	printf("请输入密码:");
	scanf("%s", password);        //输入123456 abcd
                                      //scanf()读入123456  
        int temp = 0;                 //清除所有所有字符
        while((temp = getchar()) != '\n')
        {
            ;        
        }
                               
	printf("请确认密码(Y/N):");
	int ch = getchar();
	if (ch == 'Y')
	{
		printf("确认成功\n");
	}
	else
	{
		printf("确认失败\n");
	}

	return 0;

}

2、for循环

  • 语法

  • 例子

#include <stdio.h>
//打印1~10
int main()
{
    int i = 0;
    for(i=1; i<=10; i++)
        printf("%d", i);
    
    return 0;
}
//break语句作用
#include <stdio.h>
int main()
{
    int i = 0;
    for(i=1; i<=10; i++)
    {
        if(i == 5)
            break;
        printf("%d ", i);                    
    }

                                    //结果:1 2 3 4 
   
    return 0;
}
//continue语句作用
#include <stdio.h>
int main()
{
    int i = 0;
    for(i=1; i<=10; i++)
    {
        if(i == 5)
            continue;
        printf("%d ", i);                    
    }

                                    //结果:1 2 3 4 6 7 8 9 10 
   
    return 0;
}
  • 变式1
#include <stdio.h>
int main()
{
    //判断部分省略,判断部分恒为真
    for(;;)
    {
        printf("haha\n");    
    }
                                //haha死循环
    return 0;
}
#include <stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    for(; i<3; i++)
    {
         for(; j<3; j++)           //i=1时j依然=3,故只打印3个haha
         {    
             printf("haha\t");
         }        
    }
                                //haha    haha    haha
    return 0;
}
  •  变式2
#include <stdio.h>
int main()
{
    int x, y;
    for (x = 0, y = 0; y=0; ++x, y++)
    {
        printf("hehe\n");            //判断部分y=0结果为0为假,循环0次
    }
    
    return 0;
}

3、do……while()循环

  • 语法

  • 例子

#include <stdio.h>
//打印1 2 3 4
int main ()
{
    int i = 1;
    do
    {
        if (i == 5)
            break;
        printf("%d ", i);
        i++;    
    } while (i<=10);
    
    return 0;
}

举报

相关推荐

0 条评论