首页 > 其他分享 >修仙之条件语句与循环语句

修仙之条件语句与循环语句

时间:2024-03-31 21:32:17浏览次数:20  
标签:语句 运算符 修仙 while 循环 执行 表达式

修仙之条件语句与循环语句

  • 一 、条件语句
    • 1.算术运算符,逻辑运算符
      • a. 算术运算符
      • b.逻辑运算符
    • 2.if语句
    • 3.switch语句
  • 二、循环语句
    • 1.while语句
    • 2.do while语句
    • 3.for 语句
  • 总结

一 、条件语句

1.算术运算符,逻辑运算符

a. 算术运算符

在写代码时候,一定会涉及到计算。
C语言中为了方便运算提供了一系列操作符,其中有一组操作符叫:算术操作符。分别是: + - * / % 等等,叫做双目操作符,这些较为简单,我这里就暂且不提。
我主要想介绍是单目操作符,如++,–等等;如图所示:

在这里插入图片描述

b.逻辑运算符

逻辑运算符:三个运算符(!、&& 和 ||),又叫布尔运算符,它们是对 true/false 值进行运算。其中第一个,!执行布尔值 NOT 操作。它是一个一元运算符,如果其操作数为 false,则计算结果为 true,如果操作数为 true,则计算结果为 false。

&& 和 ||运算符分别执行逻辑 and和逻辑 or 运算。当且仅当两个值都为真时,两个值的逻辑 AND 为真,否则为假。当且仅当其中任何一个值为真时,两个值的逻辑 or 为真,否则为假。

与我们之前看到的运算符不同,&& 和 ||可能只从一个论点中知道他们的答案。在 &&, 的情况下,如果任一操作数为 false,则结果为 false,而不管其他值如何。与 ||类似,如果任一操作数为 true,则无论其他值如何,结果均为 true。C 以计算 && 和 || 的方式利用了这一事实通过使它们短路,它们可能只计算一个操作数。具体来说,第一个操作数的计算结果始终为一个值;但是,如果该操作数的值决定了整个 && 或 || 的结果—false 表示 && 或 true 表示 ||- 则根本不计算第二个操作数

2.if语句

#include <stdio.h>
int main()
{
 int num = 0;
 scanf("%d", &num);
 if(num % 2 == 1)
 printf("%d 是奇数\n", num);
 else;
 printf("%d 是偶数\n", num);
 return 0;
}

当执行箭头到达 if 语句时,计算条件表达式。计算此表达式的过程与计算任何其他表达式一样。如果结果为 true,则立即在“if”块内移动执行箭头,然后像往常一样继续执行语句。当执行到达结束“if”块的右大括号时,跳过 else 块,将执行箭头紧接在“else”块的右大括号之后,然后从那里继续执行语句。

如果条件表达式的结果为 false,则应跳过“if”块并执行“else”块。将执行箭头移动到“else”块的开头,然后从那里继续执行语句。当您的执行箭头到达结束“else”块的近大括号时,只需将其移过该大括号(这没有效果,它只是表示块的结束)并继续正常执行语句。

C 允许 if 没有 else,这相当于一个空的 “else” 块(就好像程序员写了 else {})。如果你执行一个没有其他的if,那么只需想象一个空的“else”块。如果条件表达式的计算结果为 true,则应如前所述执行“if”块,但是,没有“else”块可以跳过。

3.switch语句

#include<stdio.h>
int main()
{
	int n, x;
	int g( x,  n);
	switch (x + n)
	{
	case 6:
		x = x + 1;
	case 0:
		n = n - 1;
		break;//表示程序结束。
	case 14:
		return n - x;
	default://表示如果g()没有符合的结果,则进入default的进程
		x = n;
		break;
	  }
	return x * n;
}
    int a = g(10, 4);
	int b = g(a, 2);
	int c = g(9, b);
	return 0;
}

当运行到达 switch 语句时,选择表达式(在关键字 switch 后面的括号中)被计算为一个值。然后,此值用于确定要输入的情况。然后,将跳转到相应的事例,即其标签(紧跟在关键字大小写之后的常量)与选择表达式的值匹配的事例。如果没有标签匹配,则将跳转到默认大小写(如果有),如果没有,则跳转到开关的右大括号。

一旦运行跳转到特定情况,执行将照常继续,直到遇到关键字中断。当执行箭头到达 break 关键字时,它会跳转到结束 switch 语句的右大括号。请注意,到达另一个案例标签不会结束当前案例。除非执行箭头遇到中断,否则执行会从一个语句继续到下一个语句。当执行箭头像这样从一个案例传递到下一个案例时,称为“落入”下一个案例。

例如,如果我们执行上图中的代码,并得到 switch 语句,其中 x 的值为10 ,n 的值为 4,那么我们将首先计算选择表达式 (x - n),并得到值 6。然后,执行箭头将跳转到情况 6:,并在其后开始执行语句。我们将执行 x = 11;。然后,我们将落在下一个案例标签中——我们的执行箭头将越过它进入下一个案例(标签本身没有效果)。然后我们将执行 n = 3;。接下来,我们将执行中断;如果没有可以得到的值,就运行default的代码进程中

二、循环语句

1.while语句

#include<stdio.h>
int main()
{
int x , y;
f (x, y)
 {
  while (x < y)
   {
    printf("%d ", y - x);
    x = x + 1;
    y = y - 1;
  }
}
return 0;
}

关键字 while 后跟括号中的表达式。与 if 语句非常相似,计算此表达式以确定是否输入紧跟其后面的代码块,称为循环主体。如果条件表达式的计算结果为 true,则执行箭头将在循环主体内移动,其语句将正常执行。while 循环与 if 语句的不同之处在于,当执行箭头到达右大括号时会发生什么。在 while 循环的情况下,它会跳到循环的顶部,紧挨着 while 关键字。然后重新计算条件表达式,如果它仍然为 true,则执行将重新进入循环体。如果条件表达式的计算结果为 false,则执行箭头将立即跳到循环体的右大括号之后,并从那里继续。

2.do while语句

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

与在循环顶部检查其条件表达式的 while 循环不同,do-while 循环在执行正文后在循环底部检查其条件表达式。虽然这种区分似乎是人为的(无论哪种方式,在迭代之间检查条件),但它在循环开始时很重要。如果条件最初为 false,while 循环可能会执行其主体零次,跳过整个循环。相比之下,do-while 循环保证至少执行其主体一次,因为它在检查条件之前执行循环主体。

do-while 循环的执行首先进入循环体并执行其中包含的所有语句。当执行箭头到达循环体末尾的 while 时,将计算其条件表达式。如果表达式的计算结果为 true,则执行箭头将跳回循环正文的开头。如果表达式的计算结果为 false,则它会移动到循环的末尾,并在循环之后的下一个语句中继续执行。

3.for 语句

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

for 关键字后面跟着括号内的三个部分,用分号分隔。第一个是“初始化语句”。在第一次检查循环的状况之前,它发生一次。第二部分不是语句(即使后面跟着分号),而是循环的条件表达式。第三个语句是“增加语句”
首先执行表达式1 初始化循环变量,接下来就是执行表达式2 的判断部分, 表达式2 的结果如果==0,则循环结束; 表达式2 的结果如果!=0则执行循环语句,循环语句执行完后,再去执行表 达式3 ,调整循环变量,然后再去 表达式2 的地方执行判断, 表达式2 的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3在循环。

注意,for语句的初始值要进入代码,不要直接运用到表达式3。本人有此错误的经历!!!

总结

今天,我们学习了条件语句与循环语句。懂得了while与do while语句的区别与while与for语句之间相似性。这也为我们后面学习其他的C语言知识,奠定基础。
旅途还在继续,来日方长!

标签:语句,运算符,修仙,while,循环,执行,表达式
From: https://blog.csdn.net/2301_80464260/article/details/137204924

相关文章

  • 内联函数 auto 基于范围for循环 空指针nullptr
    内联函数(C98)1.含义以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率。(官方术语)C++内联函数和C语言的宏函数很像,都是在编译时调用的地方展开,函数调用要开辟空间消耗栈要花蛮多时间,而内联函数不要开辟......
  • C生万物之循环结构全面学习<四>
    万水千山总是情,点点关注行不行。一声朋友一生情,点点关注才能行!文章目录1.三种循环结构1_1while循环if和while对比while执行流程实战示例1_2for循环for循环执行流程for循环实战while循环和for循环对比1_3do-while循环do-while循环执行流程2_1break和continue语句wh......
  • MYSQL数字函数实操宝典:场景化SQL语句一网打尽
    ​......
  • Spring中如何解决循环依赖
    八字真言:“三级缓存,提前暴露”此文只是介绍简单的情况便于理解,实际上场景会更复杂、情况会更多,但是原理相通。一、什么是循环依赖?从字面上来理解就是A依赖B的同时B也依赖了A,就像下面这样 上图是简单的循环依赖,也会存在A依赖B,B依赖C,C依赖A这种循环,或者更复杂的情况。(在实际......
  • 自学-C语言-基础-注释、变量、运算符、判断、循环
    运行环境DevC++DevC++官网认识C语言C语言是一种通用的、面向过程式的计算机程序设计语言。1972年,为了移植与开发UNIX操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了C语言。C语言是一种广泛使用的计算机语言,它与Java编程语言一样普及,二者在现代软件程序员......
  • 【C#】while循环 输出四种形式的九九乘法表
    首先创建一个控制台应用程序(一)第一种阶梯inti=1;while(i<=9){intj=1;while(j<=i){Console.Write("{0}*{1}={2}\t",j,i,j*i);//\t的目的是让式子之间有一定间隔j++;}i++;Console.WriteLin......
  • Python判断语句
    (一)布尔类型和比较运算符1.布尔类型的字面量:True表示真(是、肯定)、False表示(否、否定)2.定义变量存储布尔类型数据:变量名称=布尔类型字面量3.比较运算符:布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。运算符:“==”、“!=”(是否不相等)、“>”......
  • Spring 一文彻底搞定循环依赖
    Spring解读循环依赖一.前言Spring是怎么解决循环依赖问题第一级缓存存放的是完全初始化完成的可以直接使用的对象,第二级缓存存放的是经过后置处理器处理(即代理过)的对象,第三级缓存村放的是刚实例化好没有经过后置处理器处理(即没有被代理过)的对象。二.什么是循环依赖......
  • 基本运算符及流程控制语句(顺序、分支、循环结构)
    昨日内容回顾【一】八大基本数据类型#【1】数字类型#(1)整数类型(int)#(2)浮点数类型(float)#【2】字符串类型(str)#【3】列表类型(list)#【4】布尔类型(bool)#【5】字典类型(dict)#【6】集合类型(set)#【7】元组类型(tuple\)#【二】整数类型#能代表整数,代表......
  • 描述C语言中的循环结构(for,while,do-while)
    一、描述C语言中的循环结构(for,while,do-while)C语言提供了三种主要的循环结构:for循环、while循环和do-while循环。这些循环结构允许你重复执行一段代码,直到满足特定的条件为止。for循环for循环通常用于已知循环次数的场景。它的基本语法如下:c复制代码for(初始化;条件;更......