首页 > 其他分享 >三、分支和循环

三、分支和循环

时间:2024-08-31 23:21:08浏览次数:11  
标签:语句 case else 运算符 循环 printf 表达式 分支

一、if语句

1.1 if

  • 语法形式 :
if (表达式)
    语句;
  • 表达式成立为,则语句执行。表达式不成立为,语句不执行。
    注 : c语言中,0为假,非0为真。

1.2 else

  • 语法形式 :
if (表达式)
   语句1;
else
   语句2;

1.3分支中包含多条语句

  • 在if和else语句中,默认都只能控制一条语句
  • 如果if语句中想要同时控制两条语句,要使用 { } 将代码括起来,else后面也可以跟 上大括号 { }
if(a>0)
{
   printf ("正数\n");
   printf ("大于0\n");
}

1.4 嵌套if

  • 在 if else 语句中,else可以和另外一个if语句连用,例 :
if (a == 0)
	printf ("输入的数字为0\n");
else if (a > 0)
	printf ("输入的数字为正数\n");
else
	printf ("输入的数字为负数\n");

1.5 悬空else问题

  • 如果有多个 if 和 else ,else 总是跟最接近的 if 匹配。

二、关系操作符

  • c语言中用于比较的表达式,称为 “关系操作符” ,里面使用的运算符叫 “关系运算符”。
符号名称
>大于运算符
<小于运算符
>=大于等于运算符
<=小于等于运算符
==相等运算符
!=不等于运算符
  • 表达式通常返回 0 或 1 。
  • 多个关系运算符不宜连用。
    • 错误写法: x<y<z 在编译器中(x<y)<z
    • 正确写法: x<y && y<z

三、条件运算符

  • 条件运算符也叫三目操作符

     表达式1 ?表达式2 :表达式3 
    
    • 如果表达式1的值为表达式2的值是整个表达式的结果。
    • 如果表达式1的值为则表达式3的值为整个表达式的值。

四、逻辑操作符 : && , || ,!

  • !逻辑取反运算符 (改变单个表达式的真假)。
  • && 逻辑与运算符, 就是并且的意思,(两侧的表达式都为真则真,否则为假)。
  • || 逻辑或运算符,就是或者的意思,(两侧至少有一个表达式为真则真,否则为假)。

4.1逻辑取反运算符

  • 取反
a!a
非00
01

4.2逻辑与运算符

  • 一假则假
aba&&b
非0非01
非000
0非00
000

4.3逻辑或运算符

  • 一真则真
aba 或b
非0非01
非001
0非01
000

4.4 短路

  • c语言逻辑运算符还有一个特点 :它总是先对左侧表达式求值,再对右侧表达式求值,这个顺序是保证的。
  • 如果左边的表达式满足逻辑运算符的条件就不再对右的表达式求值,这种情况称为:“短路”。
  • 根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进行计算的运算称为 “短路求值”。

五、switch 语句

switch(expression)
{
	case value 1 :statement
	case value 2 :statement
	default : statement
}
  • switch 后的 expression 必须是整型表达式。
  • case 后的值必须是整型常量表达式。
  • case 和后面的数字之间必须有空格。
  • 每一个 case 语句中的代码执行完成后,要加上 break, 才能跳出 switch 语句。
  • break 也 不是每个 case 语句中都得有

5.1 switch语句中的default

  • switch 语句中的表达式的值无法匹配代码中的 case 语句的时候, 这时就得加入default 字句。

5.2 switch 语句中的 case 和 default 的顺序

  • switch语句中的 case 和 default 没有顺序要求, 要求满足实际要求就可以,通常default子句放到最后处理。

六、 while 循环

while (表达式)
	语句;

6.1 while 语句的执行流程

在这里插入图片描述

七、for 循环

for (表达式1 ;表达式2 ;表达式3)
	语句;
  • 表达式1 : 用于循环变量的初始化
  • 表达式2 : 用于循环结束条件的判断
  • 表达式3 :用于循环变量的调整

for循环的初始化,判断,调整三部分都可以省略,如判断部分省略, 那么 判断恒为真, 就为死循环。

7.1 for 循环的执行流程

在这里插入图片描述

八、do while 循环

do
	语句;
while (表达式);
  • 先进入循环体,执行循环语句,然后执行while后的判断表达式。

8.1 do while 循环的执行流程

在这里插入图片描述

九、break 和 continue 语句

  • break的作用是用于永久的终止循环, 只要break执行,直接会跳出循环,继续往后执行。
  • continue 的作用是跳出本次循环中continue后边的代码。

十、循环的嵌套

《素数求解的n种境界》
练习 :
找出100~200之间的素数。

int main ()
{
	int i = 0;
	for(i = 100;i <= 200; i++)//产生100 ~200的数
	{
		int j = 0;
		int a = 1;//假设它是素数
		for (j = 2; j < i;j++)
		{
			if (i %j == 0)//i求余j等于0,则它能被1和它本身以外的数整除
			{
				a = 0;
				break;
			}
		}
		if(a = 1)
		{
			printf ("%d",i);
		}
	}
	return 0;
}

十一、goto 语句

  • c语言提供了一种非常的语法,就是 goto 语句和跳转标号,goto 语句可以实现在同一个函数内跳转到设置好的标号处。
#include <stdio.h>
int main()
{
	printf("hehe\n");
	goto next;
	printf("haha\n");
next:
	printf("跳过了haha的打印\n"); 
	return 0;
}

以上是我上课笔记,如有错误还望给位朋友批评指正,谢谢

标签:语句,case,else,运算符,循环,printf,表达式,分支
From: https://blog.csdn.net/akunStudyDiary/article/details/141712614

相关文章

  • 循环
    Java有三种循环:for,while,dowhile。for基本语法:for(循环变量初始化;循环条件;循环变量迭代){循环语句;}程序示例:publicstaticvoidmain(String[]args){for(inti=0,j=0;i<3;i++,j--){System.out.println("HelloWorld");}}......
  • c语言分支与循环详解
    使用if、switch实现分支结构,使用for、while、dowhile实现循环结构分支:1.1if语句的语法if(表达式) 语句;在c语言中0表示假,则语句不执行。非0表示真,语句执行1.2else与if对应,比如说一个数不是奇数就是偶数了if(表达式) 语句1;else 语句2;表达式成立则执行语句1,不成......
  • 分支
    分支控制有三种:单分支,双分支,多分支。单分支基本语法:if(条件表达式){执行代码块;}程序示例:importjava.util.Scanner;publicclassIf01{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.print("......
  • python 基础习题7--for循环练习
    1.编写一个程序,判断输入的一个数字是否为偶数。示例输入:3返回:yes示例输入:4返回:no2.编写一个程序,找出列表中的大于50的数,并输出该数及其在列表中的索引位置。该列表可以自己写,例如:[23,78,1,56,35,60,90]输出:7815636059063.编写一个程序,统计一个字符串中字母"a"出现的次数......
  • python并发与并行(十一) ———— 让asyncio的事件循环保持畅通,以便进一步提升程序的响
    前一篇blog说明了怎样把采用线程所实现的项目逐步迁移到asyncio方案上面。迁移后的run_tasks协程,可以将多份输入文件通过tail_async协程正确地合并成一份输出文件。importasyncio#OnWindows,aProactorEventLoopcan'tbecreatedwithin#threadsbecauseittriestoregi......
  • PHP循环
    循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。在PHP中,提供了下列循环语句:while-只要指定的条件成立,则循环执行代码块do...while-首先执行一次代码块,然后在指定的条件成立时重复这个循环for-循环执行代码块指定的次数foreach-根据数组中每个元素......
  • 04.循环语句 & 逻辑运算符
    4.循环语句and逻辑运算符4.1for循环for循环的基本结构为:两个分号是必不可少的,用while表示for可以写为:如果在for循环中,第一部分被省略,C++会假定判断条件始终为真,循环一直进行。程序经常在循环体中显示控制变量值或在计算中使用它,但这种使用不是必需的。控制变量通常用于......
  • 阿里云虚假分支剖析
    阿里云虚假分支剖析记得加入我们的学习群:961566389获取最新资讯1.a^2+b^2>=ab形式……case18432:P=(fe=(Y=(Oo=23)*Oo)+(P=(qe=12>>qe)*qe))>=(Y=Oo*qe),L=w[m=L],j.push(L),li=25664;break;case......
  • 设计循环队列
    力扣(LeetCode)--设计循环队列1题目描述设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列......
  • 分享:JS事件循环机制,宏任务和微任务
     为什么会讲这个主题? 这要从一个bug讲起,10月26号,app端,我的考勤日历面板上的信息在ios上显示不全。效果见手机视频。 当时我们几个排查了2-3天都没找到原因,review代码各种改都不行。(此时打开代码看下,src/app/myAttendance/attendance.vueline298line246)最后通过setTimeo......