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-分支和循环语句-ONE -> 正文阅读

[C++知识库]C-分支和循环语句-ONE

C语言中由一个;隔开的就是一条语句

IF语句

?if语句格式

if (/* 表达式 */)
{
    /* 语句 */
}
if (/* 表达式 */)
{
    /* 语句1 */
}
else
{
    /* 语句2 */
}

多分支如下:(扩展就继续加else if语句)

if (/* 表达式1 */)
{
    /* 语句1 */
}
else if (/* 表达式2 */)
{
    /* 语句2 */
}
else
{
    /* 语句4 */
}

if和else引用多个语句需用{ },else与最近的未匹配的if相匹配

例:判断0~100内的奇数并打印

int main()
{
  int a = 0;
  while (a<=100)
  {
    if (a%2 == 1)  //a连续除以2余1
    {
      printf("%d ", a);
    }
    a++;
  }
  return 0;
}

SWITCH语句

?switch语句是一种分支语句,常用于多分支情况

语法:

switch (/* 表达式 */)
{
case /* 常量表达式 */:
  /* 代码 */
  break;

default:
  /* 代码,当结果不匹配的时候输出,default语句可不写 */
  break;   //case与default没有书写顺序
}

(switch语句中可加入if语句)

例1:输出星期

int main()
{
  int day = 0;
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    printf("Monday\n");  //case是入口,break是出口
    break;
  case 2:
    printf("Tuesday\n");
    break;
  case 3:
    printf("Wednesday\n");
    break;
  case 4:
    printf("Thursday\n");
    break;
  case 5:
    printf("Friday\n");
    break;
  case 6:
    printf("Saturday\n");
    break;
  case 7:
    printf("Sunday\n");
    break;

  default:
    printf("Oh\n");
    break;
  }
  return 0;
}

上面例子中每个case子句中需加入break(但只加最后一个case语句的break程序也没出错/混乱)

例2:打印工作日和休息日

int main()
{
  int day = 0;
  scanf("%d", &day);
  switch (day)
  {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
    printf("Working day\n");
    break;
  case 6:
  case 7:
    printf("Off day\n");
  
  default:
    printf("Oh\n");
    break;
  }
  return 0;
}

例3:

int main()
{
  int n = 1;
  int m = 2;
  switch (n)
  {
  case 1:
    m++;       //m变成3
  case 2:
    n++;       //n变成2
  case 3:
    switch (n) //swicth语句中可继续套用switch语句
    {
    case 1:
      n++;
    case 2:    //此时n=2,从此入
      m++;     //m变成4
      n++;     //n变成3
      break;   //跳出内层的switch语句

    default:
      break;
    }
  case 4:
    m++;       //m变成5
    break;     //跳出外层switch语句
  
  default:
    break;
  }
  printf("n=%d, m=%d\n", n, m);
  return 0;
}

WHILE语句

?语法:

while (/* 条件 */)
{
  /* 代码 */
}

例1:打印出1~10

int main()
{
  int a = 1;
  while (a<=10)
  {
    printf("%d\n", a);
    a++;
  }
  return 0;
}

while语句中break可使循环终止

int main()
{
  int a = 1;
  while (a<=10)
  {
    if (a == 5)
      break;
    printf("%d\n", a); //只打印1 2 3 4
    a++;
  }
  return 0;
}

而continue可跳过当前循环进行下一步循环

int main()
{
  int a = 1;
  while (a<=10)
  {
    if (a == 5)
      continue;
    printf("%d\n", a); //只打印1 2 3 4并陷入死循环
    a++;
  }
  return 0;
}

?例2:

int main()
{
    int ch = 0;
    while((ch=getchar()) !=EOF) //EOF=End Of File=-1,当输入不是EOF时,就执行while
    {
        putchar(ch);   //输入Ctrl+Z,ch就会接收到EOF
    }
    return 0;
}

PS:getchar与putchar

int main()
{
  int ch = getchar();  //getchar()可接收一个字符赋给ch
  putchar(ch);  //等于printf("%c\n", ch)
  return 0;
}

例1:

int main()
{
    int a = 0;
    char password[10] = {0};
    printf("Please enter  password\n");
    scanf("%s", password);      /* scanf和getchar为输入函数,从输入缓冲区中获取 */
    /* 若想代码成功需在此加入 getchar(); 可消除掉\n */
    printf("Please confirm(Y/N):>");
    a = getchar();      /* 输完密码后回车时,密码被password接收,而回车是\n,被a接收 */
    if (a=='Y')
    {
        printf("Succeeded");
    }
    else
    {
        printf("Failed");
    }    
    return 0;
}

输入密码时输入了空格还会出错,改良如下:

int main()
{
    int a = 0;
    int b = 0;
    char password[10] = {0};
    printf("Please enter  password\n");
    scanf("%s", password);
    while ((b=getchar()) !='\n')
    {
        ;
    }
    printf("Please confirm(Y/N):>");
    a = getchar();
    if (a=='Y')
    {
        printf("Succeeded");
    }
    else
    {
        printf("Failed");
    }    
    return 0;
}

例2

int main()
{
    int a = 0;
    while ((a=getchar()) !=EOF)
    {
        if (a<'0' || a>'9')
        {
            continue;
        }
        putchar(a);
    }
    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-08-06 10:25:04  更:2022-08-06 10:25:59 
 
开发: 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/23 12:55:28-

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