首页 > 其他分享 >C语言学习记录(七)————控制语句

C语言学习记录(七)————控制语句

时间:2024-06-09 09:00:45浏览次数:13  
标签:语句 记录 int else break printf C语言 表达式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

一位学习C语言的小白,有错误请私信或评论。
本文主要介绍C语言的控制语句~

提示:以下是本篇文章正文内容,下面案例可供参考

控制语句是什么?

控制语句即用来实现对程序流程的分支、循环、转向和返回等进行控制。。

在这里插入图片描述

一、分支语句(选择结构)

1 if-else语句

if语句概述

if(表达式)
语句块1
 else
语句块2

常见形式
简化形式

	if(表达式)语句块,例如:
	if(x>y) printf("%d",x);

阶梯形式

if(表达式1) 语句块1
else if (表达式2) 语句块2
else if(表达式3) 语句块3
else if (表达式4)  语句块4

嵌套形式

if()
{	
		if () 
			语句1;
	  else 
	  	语句2 ;
}
else 
{
	if() 
		语句3;
	else 
		语句4;
}

简写:
if()
else if()
else
  1. 语句块,当有若干条语句的时候,必须用{… …}括号起来

  2. 表达式

    1. 一般情况下为逻辑表达式或关系表达式
      如:if(ab && xy) printf(“%d”,x);
    2. 也可以是任意类型(包括整形,实型,字符型,指针类型)
      1. 如: if (‘a’) printf(“%d”,a);
    3. 请区分if(x=1)和 if(1==x)的不同(容易漏写等于号一个等于代表赋值两个比较是否相等)

作业:输入三个数,比较大小

思路分析:
先比较两个数选出大的那个数与第三个数进行比较若小于第三个数则最大的是第三个数第二大的数选出来的剩下的为最小的,若大于第三个数则需要把第三个数与两者较小的继续进行比较便能的到最后答案。
代码:

方法一:

//从大到小
 if(a > b)
    {
        if(a > c)
        {
            if(b > c)
            {
                printf("%d>%d>%d",a,b,c);
            }
            else
            {
                printf("%d>%d>%d",a,c,b);
            }
        }
        else
        {
            printf("%d>%d>%d",c,a,b);
        }
    }
    else
    {
        if(a > c)
        {
            printf("%d>%d>%d",b,a,c);
        }
        else
        {
            if(b > c)
            {
                printf("%d>%d>%d",b,c,a);
            }
            else
            {
                printf("%d>%d>%d",c,b,a);
            }
        }
    }

方法二:

//从小到大
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,c,t;
    scanf("%d%d%d",&a,&b,&c);
    if(a > b)
    {
        t = a;
        a = b;
        b = t;
    }
    if(a > c)
    {
        t = a;
        a = c;
        c = t;
    }
    if(b > c)
    {
        t = b;
        b = c;
        c = t;
    }
    printf("%d<%d<%d",a,b,c);
    return 0;
}

2 switch语句

多分支选择结构
switch 语句的基本形式

switch(表达式)
 {
	 case 常量表达式1: 语句块1 ;break;
	 case 常量表达式2: 语句块2; break;
	 case 常量表达式n:  语句块n: break;
	 default : 语句块n+1
}

switch语句的使用

每个常量表达式的值必须各不相同,否则将出现矛盾
当表达式的值与case后面的常量表达式的值相等时,就执行case后面的语句。
switch中的表达式可以是整形,字符型表达式或枚举。
case 常量:只起语句标号的作用
break语句用于强行跳出switch体,一般每个case后面应有一个break语句,defalut
分支后的break可以省略
多个case可以执行一条语句
例如:成绩四分制

#include <stdio.h>

int main()
{
    int score;
    printf("please input your score:");
    scanf("%d",&score);

    if(score > 100 || score < 0)
    {
        printf("input error");
    }
    else
    {
            switch((int)score/10)
        {
            case 9:
                    printf("A\n");
                    break;
            case 8:
            case 7:
                    printf("B\n");
                    break;
            case 6:
                    printf("C\n");
                    break;
            default:
                    printf("D\n");

        }
    }

    return 0;
}

二、循环语句

1.goto

如何使用go to来完成1-100的求和

int main()
 {
 int i=1,sum =0;
 loop:
 if(i<=100)
    {
 sum=sum+i;
 i++;
 goto loop;
    }
 printf("%d \n",sum);
 return 0;
 }

当程序有多个出口,使用goto把这些出口集中到一处很方便,特别是函数中有很多重复的工作的时候。
理由是:
无条件跳转易于理解
可以减少嵌套
可以避免那些忘记更新某一个出口点的问题
算是帮助了编译器做优化

2while

while语句构成循环

基本形式:
while(表达式)
 {
 	statements;
 }

循环条件:
1.变量初值
2.终止条件
3.变量变化

例子:1-100的求和:

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

3 do-while

do-while构成循环
基本形式

do{
	statements;
  }while(表达式);

例子:1-100的求和:

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

注:while和do-while的区别:do-至少执行一次,while可以一次不执行。

4 for

一般形式

for(expression1;expressiojn2;expression3)
 {
	 statements;
 }

执行过程

  1. 先求解表达式1,初始值。
  2. 求解表达式2,若为真,则执行循环体,然后执行步骤三,若为假则执行步骤5
  3. 求解表达式3
  4. 转回执行步骤2
  5. 执行for下面的语句

例子,1-100的求和:

for(i=1;i<=100;i++)
{
	sum=sum+i;
}

for语句构成循环
表达式1可以省略,但循环之前应要给循环变量赋值
表达式2可以省略,将陷入死循环
表达式3可以省略,但在循环体中增加循环使变量的值改变的语句
题目:打印九九乘法表
在这里插入图片描述
代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    for(int i = 1;i<=9;i++)
    {
        for(int j = 1 ; j <= i ; j++)
        {
            printf("%d x %d = %d ",j,i,i*j);
        }
        printf("\n");
    }
    return 0;
}

运行结果:
在这里插入图片描述

三、 辅助控制语句

1 break

用于从循环体内跳出一层循环体,即提前结束循环
break只能用在循环语句和switch语句中。
例:

for(r=1;r<=10;r++)
 {
 area=pi*r*r;
 if(area>100) break;
 printf("%f",area);
 }

2 continue

结束本次循环,接着判定下一次是否执行循环
注意break和continue的区别
continue直结束本次循环,而break终止本层循环

例如:打印100~120之间的数(跳过能被3整除的数)

for(int i = 100 ;i <= 120 ;i++)
   {
        if( i % 3 == 0)
        {
            continue;
        }
        printf("%d\n",i);
   }

3 return

return语句的一般形式:return(<表达式>)
主要用于终止包含它的函数的执行
若终止的为主函数,则主程序结束

总结

控制语句非常常用,一定要会。
只需要一次判断的可以用if-else
需要从多个当中选择可以用switch
需要多次执行相同的可以用while、dowhile、for。

标签:语句,记录,int,else,break,printf,C语言,表达式
From: https://blog.csdn.net/qq_63556165/article/details/139544245

相关文章

  • C语言学习记录(六)————输入输出
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、输入输出1.数据输出2.格式输出函数3.字符输入函数4格式输入函数5输入函数垃圾清理方法1:用getchar清除方法2:用格式串中空格或“%*c”来吃掉6字符串输入输出函数6.1字符串输入函数get......
  • C语言二叉平衡搜索树
    AVL(二叉平衡搜索树)的概念和思路任意一个节点左子树高度-右子树高度<=1要想让BST保持平衡,必须在每一次插入、删除之后,检查是否其左右子树满足平衡的定义如果不满足,就做“旋转”操作,使其恢复平衡加入以上平衡策略算法后的BST,称为AVL,AVL是一种绝对平衡的二叉树#include......
  • ATcoder ABC 351 补题记录(A~F)
    A按照顺序直接模拟即可。#pragmaGCCoptimize(3)#include<bits/stdc++.h>#defineintlonglong#definepbpush_back#defineememplace_back#defineF(i,x,y)for(inti=x;i<=y;i++)#defineG(i,x,y)for(inti=x;i>=y;i--)#defineW(G,i,x)for(auto&i:G[x......
  • 深度学习入门(鱼书)学习记录 - 第5章 误差反向传播法
    前言:上一章通过数值微分计算神经网络的权重参数的梯度,这种方法比较简单但比较耗时。所以现在介绍另外一种比较高效的方法-- 误差反向传播法目录计算图举例为什么用计算图求解计算图的优点链式法则链式求导反向传播加法节点的反向传播乘法节点的反向传播简单层的......
  • C语言中的指针(1)
    目录指针是什么?指针变量&和*操作符指针变量的类型指针变量的大小指针变量类型的意义void*指针const修饰指针const修饰变量const修饰指针变量指针运算•指针+-整数•指针-指针​编辑​编辑​编辑•指针的关系运算野指针概念成因指针未初始化​编......
  • C语言实验六
    #include<stdio.h>#include<string.h>#defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试typedefstructstudent{intid;//学号charname[20];//姓名charsubject[20];//考试科目doublepe......
  • C语言笔记第12篇:自定义类型(struct结构体)
    1、结构体类型的声明为什么要有自定义的结构类型呢?这是因为稍微复杂的类型,直接使用内置类型是不行的!比如:描述一个人或 一本书的价格、版号等信息。1.1结构的创建结构体是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。1.1.1 结构的声明structt......
  • c语言分支循环语句
    与这相关的逻辑运算符和求素数的四种方法都在主页哦 if语句(三种形式)1.无else语句部分1)语法形式if(表达式)语句12)介绍如果表达式为真(成立),则语句执行;如果表达式为假(不成立),则语句不执行。注意:在c语言中,0表示真,非零表示假#include<stdio.h>intmain(){intn=0;scanf......
  • 【ROS使用记录】—— ros使用过程中的rosbag录制播放和ros话题信息相关的指令与操作记
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、rosbag的介绍二、rosbag的在线和离线录制三、rosbag的播放相关的指令四、其他rosbag和ros话题相关的指令总结前言rosbag是ROS(机器人操作系统)中用于记录和回放数据的工具。录制数据可......
  • try…except语句
    自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501在程序开发时,有些错误并不是每次运行都会出现。例如,实例01,只要输入的数据符合程序的要求,程序就可以正常运行,否则将抛出异常并停止运行。假设在输入苹......