IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言】分支语句与循环语句 -> 正文阅读

[C++知识库]【C语言】分支语句与循环语句

目录

一、分支语句

1、if语句

?语法

?例子

2、switch语句

语法

例子

二、循环语句

1、while循环

语法

例子

getchar()、putchar()

2、for循环

语法

例子

3、do……while()循环

语法

例子


一、分支语句

1、if语句

  • 0表示假,非0表示真
  • 表达式的结果为真,则执行语句
  • ?语法

if(表达式1)

????????语句1;

else if(表达式2)

????????语句2;

else

????????语句3;

  • ?例子

//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语句

  • 多用于分支多的情况
  • break语句跳出switch语句
  • 没有break语句将从进入的case语句开始依次向下执行
  • default语句是其他选项的出口,且不用考虑顺序
  • 语法

switch(表达式)

{

????????case 常量表达式1: 语句序列1;

????????case 常量表达式2: 语句序列2;

????????default: 语句序列3;

}

  • 例子

//打印输入数字对应的星期
#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循环

  • 语法

while(表达式)

{

????????循环语句;

}

  • 例子

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

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

    return 0;
}
  • break、continue语句
  • 在while循环中,break永久的终止循环
  • 在while循环中,continue跳过本次循环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()

  • int c = getchar()可以读入一个输入的字符,整型变量将c包含输入字符的ascii码值
  • putchar(c)可以将整型变量c的内容以字符的形式打印出来
  • 输入crtl+z相当于没有输入,getchar()返回一个特殊值EOF(end of file结束获取字符)
  • 不将c声明为char类型的原因:c必须不仅可以存储任何字符,还要可以存储EOF
  • EOF定义在中,是一个整型数,具体数值不重要,只有与所有的char类型的值都不相同即可,本质是-1,没有字符的ascii值是-1
  • getchar()会无视语句顺序拿走缓冲区的字符,需注意提前用清除缓冲区
#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循环

建议

  • 不可在for循环体内修改循环变量,防止for循环失去控制
  • 建议for语句的循环控制变量的取值采用“前闭后开区间”的写法
  • 语法

for(表达式1; 表达式2; 表达式3)

{

????????循环语句;

}

  • 表达式1:初始化部分,用于初始化循环变量
  • 表达式2:条件判断部分,用于判断循环是否终止
  • 表达式3:调整部分,用于循环条件的调整

  • 例子

#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
  • 判断条件可以多个
  • 判断部分y=0结果为0为假,循环0次
#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()循环

  • 循环至少执行一次
  • 语法

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

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:38:43  更:2022-02-06 13:40:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:25:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码