C语言入门篇(三)上

简介: C语言入门篇(三)上

什么是语句?


C语句可分为以下五类:


  • 表达式语句
  • 函数调用语句
  • 控制语句
  • 复合语句
  • 空语句

本篇文章后面介绍的是控制语句。

 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

 可分成以下三类:

 1.条件判断语句也叫分支语句: if语句、 switch语句;

 2.循环执行语句: do while语句、while语句、 for语句;

 3.转向语句: break语句、goto语句、continue语句、 return语句。


#include<stdio.h>
int main()
{
  3 + 5;//表达式语句
  ;//空语句
  printf("iloyo.");//函数调用语句
  return 0;
}


1. if语句


if语句的语法结构:


if(表达式)
  语句1;
else
  语句2;
//单分支-if语句可以不加else
if(表达式)
  语句;
//多分支
if(表达式1)
  语句1;
else if(表达式2)
  语句2;
else
  语句3;
//嵌套使用
if(表达式1)
    语句1;
else
{
    if(表达式2)
      语句2;
    else
      语句3;
}

如果表达式的结果为真,则语句执行

在C语言中:0表示假,非0表示真。


如果条件成立,要执行多条语句,应该使用代码块:{ }


#include<stdio.h>
int main()
{
  if(表达式)
  {
    语句列表1;
  }
  else
  {
    语句列表2;
  }
  return 0;
}

实例:


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

假设人的一生可分为:幼年(1-10岁)、青年(11-35岁)、中年(36-60岁)、老年(61- 岁)。已知一个人的年龄,如何知道ta处于人生哪个阶段呢?


#include<stdio.h>
int main()
{
  int age = 20;
  //int age;
  //scanf("%d",&age);
  if (age >= 1 && age <= 10)
    printf("幼年");
  else if(age>10&&age<=35)
    printf("青年");
  else if(age>35&&age<=60)
    printf("中年");
  else
    printf("老年");
  return 0;
}

1.1 悬空else

下面是一个悬空的else语句,本意是与第一个if语句匹配,输出结果应该是“haha”,为什么会出错呢?

78358a97855a67c1de8d517dd89819f8_0084e78658a34f4dbd11f9eb42d2701a.png

原因一:默认情况下,if只能控制一条语句,若想控制多条语句,就要加上{ },else同上。

原因二:if-else 就近原则,else是与离它最近的if匹配的。

改正如下:


#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.2 if书写形式对比

下面的代码2和代码4更好,逻辑更加清晰,不容易出错。


//代码1
if (condition)
{
  return x;
}
return y;
//代码2
if(condition)
{
  return X ;
}
else
{
  return y;
}
//代码3
int num = 1;
if(num == 5)
{
  printf("hehe\n");
}
//代码4
int num = 1;
if(5 == num)
{
  printf("hehe\n");
}
  • 当常量与变量判断相等时,把常量放在“==“”左边,避免出错
  • 函数体中,只要碰到return就返回,后面语句不再执行
  • 养成良好的代码风格,在笔试中才不会丢分

1.3 练习

1.判断一个数是否为奇数

2.输出1-100之间的奇数


下划看答案


//第一题
#include<stdio.h>
int main()
{
  int n = 0;
  scanf("%d", &n);
  if (n % 2 == 1)
  {
    printf("%d是奇数\n",n);
  }
  else
  {
    printf("%d不是奇数\n",n);
  }
  return 0;
}
//第二题
//代码1
#include<stdio.h>
int main()
{
  int i = 1;
  while (i <= 100)
  {
  printf("%d ", i);
  i = i+2;
  }
  return 0;
}
//代码2
#include<stdio.h>
int main()
{
  int i;
  for (i = 1; i <= 100; i++)
  {
  if (i % 2 != 0)
  {
    printf("%d ", i);
  }
  }
  return 0;
}

相关文章
|
C语言
C语言入门篇(四)上
C语言入门篇(四)上
|
C语言
C语言入门篇(三)下
C语言入门篇(三)下
|
C语言
C语言入门篇(四)下
C语言入门篇(四)下
|
Rust 算法 安全
【RUST学习日记】第5课 变量和常量
【RUST学习日记】第5课 变量和常量
|
存储 程序员 编译器
程序环境和预处理 C语言入门到入土(进阶篇)(一)
程序环境和预处理 C语言入门到入土(进阶篇)(一)
程序环境和预处理 C语言入门到入土(进阶篇)(一)
|
编译器 Linux C语言
程序环境和预处理 C语言入门到入土(进阶篇)(二)
程序环境和预处理 C语言入门到入土(进阶篇)(二)
程序环境和预处理 C语言入门到入土(进阶篇)(二)
|
Linux C语言 C++
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(二)
本章节文章是作者通过观看《C语言深度剖析》等各种资料总结的精华,基础部分省略了不少,是为了让大家能够更加深入了解C语言的魅力!因为为了避免与之前的文章发生赘述,所以就直接讲作者认为的精华部分哈!现在正文开始!
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(二)
|
C语言 C++
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(一)
本章节文章是作者通过观看《C语言深度剖析》等各种资料总结的精华,基础部分省略了不少,是为了让大家能够更加深入了解C语言的魅力!因为为了避免与之前的文章发生赘述,所以就直接讲作者认为的精华部分哈!现在正文开始!
《C语言深度剖析》第二章 符号详解 p1 C语言从入门到入土(进阶篇)(一)
(函数p1) C语言从入门到入土(入门篇)(二)
1. 函数是什么? 2. C语言中函数的分类: 2.1 库函数: 2.1.1 如何学会使用库函数? 2.2 自定义函数 3. 函数的参数 3.1 实际参数(实参): 3.2 形式参数(形参): 4. 函数的调用: 4.1 传值调用 4.2 传址调用 4.3 练习
(函数p1) C语言从入门到入土(入门篇)(二)
|
编译器 C语言
(函数p2) C语言从入门到入土(入门篇)(一)
5. 函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问 6. 函数的声明和定义 6.1 函数声明: 6.2 函数定义: 7. 函数递归 7.1 什么是递归? 7.2 递归的两个必要条件 7.2.1 练习1: 7.2.2 练习2: 7.3 递归与迭代 7.3.1 练习3: 7.3.2 练习4:
(函数p2) C语言从入门到入土(入门篇)(一)