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

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

  • 一 、条件语句
    • 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语言知识,奠定基础。
旅途还在继续,来日方长!

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值