在嵌套使用if语句时,C语言规定else总是什么?

C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。

在C语言中,使用if和else关键字对条件进行判断。请先看下面的代码:

#include 

int main()

{

    int age;

    printf("请输入你的年龄:");

    scanf("%d", &age);

    if(age>=18){

        printf("恭喜,你已经成年,可以使用该软件!\n");

    }else{

        printf("抱歉,你还未成年,不宜使用该软件!\n");

    }

    return 0;

}

可能的运行结果:

请输入你的年龄:23↙

恭喜,你已经成年,可以使用该软件!

或者:

请输入你的年龄:16

抱歉,你还未成年,不宜使用该软件!

这段代码中,age>=18是需要判断的条件,>=表示“大于等于”,等价于数学中的≥。

如果条件成立,也即 age 大于或者等于 18,那么执行if后面的语句(第8行);如果条件不成立,也即 age 小于 18,那么执行else后面的语句(第10行)。

if 意为“如果”,else 意为“否则”,用来对条件进行判断,并根据判断结果执行不同的语句。总结起来,if else 的结构为:

if(判断条件){

    语句块1

}else{

    语句块2

}

意思是,如果判断条件成立,那么执行语句块1,否则执行语句块2 。其执行过程可表示为下图:

所谓语句块(Statement Block),就是由{ }包围的一个或多个语句的集合。如果语句块中只有一个语句,也可以省略{ },例如:

if(age>=18) printf("恭喜,你已经成年,可以使用该软件!\n");

else printf("抱歉,你还未成年,不宜使用该软件!\n");

由于if else 语句可以根据不同的情况执行不同的代码,所以也叫分支结构或选择结构,上面的代码中,就有两个分支。

求两个数中的较大值:

#include 

int main()

{

    int a, b, max;

    printf("输入两个整数:");

    scanf("%d %d", &a, &b);

    if(a>b) max=a;

    else max=b;

    printf("%d和%d的较大值是:%d\n", a, b, max);

    return 0;

}

运行结果:

输入两个整数:34 28↙

34和28的较大值是:34

本例中借助变量max,用max来保存较大的值,最后将max输出。

if语句的嵌套

if 语句也可以嵌套使用,例如:

#include 

int main(){

    int a,b;

    printf("Input two numbers:");

    scanf("%d %d",&a,&b);

    if(a!=b){  //!=表示不等于

        if(a>b) printf("a>b\n");

        else printf("ab\n");  // ②

else printf("a

③和②配对,而不是和①配对。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

continue语句的作用是结束整个循环的执行吗?

continue 语句的作用是结束本次循环,跳过循环体中剩余的语句而强制进入下一次循环(回到循环体的开头准备再次执行循环体)。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。使用方式…

linux 远程权限不够,Eclipse连接远程Hadoop集群开发时权限不足问题解决方案

eclipse连接远程Hadoop集群开发时报错Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: userd, accessWRITE, inode"data":zxg:supergroup:rwxr-xr-xat org.apache.hadoop.hdfs.server.namenode.FSPerm…

一文掌握 C 智能指针的使用

RAII 与引用计数了解 objective-C/Swift 的程序员应该知道引用计数的概念。引用计数这种计数是为了防止内存泄露而产生的。基本想法是对于动态分配的对象,进行引用计数,每当增加一次对同一个对象的引用,那么引用对象的引用计数就会增加一次&a…

fwrite函数的一般调用形式是什么?

fwrite() 是C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。语法:fwrite(buffer,size,count,fp)参数&#x…

lambdas 排序_Java8 Lambdas:解释性能缺陷的排序

lambdas 排序与Peter Lawrey合作撰写 。 几天前,我对使用新的Java8声明式的排序性能提出了一个严重的问题。 在这里查看博客文章。 在那篇文章中,我仅指出了问题,但在这篇文章中,我将更深入地了解和解释问题的原因。 这将通过使用…

strncmp函数用法是什么

strncmp函数用法&#xff1a;函数原型int strcmp(char *str1,char * str2&#xff0c;int n)功能比较字符串str1和str2的前n个字符。头文件#include 返回值返回值&#xff1a;返回整数值&#xff1a;当str1<str2时&#xff0c;返回值<0&#xff1b; str1"str2时&…

分享10个适合初学者学习的C开源项目代码

1.WebbenchWebbench 是一个在 linux 下使用的非常简单的网站压测工具。它使用 fork ()模拟多个客户端同时访问我们设定的 URL&#xff0c;测试网站在压力下工作的性能&#xff0c;最多可以模拟 3 万个并发连接去测试网站的负载能力。Webbench 使用C语言编写&#xff0c; 代码实…

tomcat与tomee_Apache TomEE(和Tomcat)的自签名证书

tomcat与tomee可能在大多数Java EE项目中&#xff0c;您将拥有具有SSL支持&#xff08; https &#xff09;的部分或整个系统&#xff0c;因此浏览器和服务器可以通过安全连接进行通信。 这意味着在处理数据之前&#xff0c;已发送的数据已加密&#xff0c;传输并最终解密。 …

C 线程的使用~(上)

C 11 之前&#xff0c;C 语言没有对并发编程提供语言级别的支持&#xff0c;这使得我们在编写可移植的并发程序时&#xff0c;存在诸多的不便。现在 C 11 中增加了线程以及线程相关的类&#xff0c;很方便地支持了并发编程&#xff0c;使得编写的多线程程序的可移植性得到了很大…

k8s中graphite_在Graphite中存储Hystrix的几个月历史指标

k8s中graphiteHystrix的杀手级功能之一是低延迟&#xff0c;数据密集和美观的仪表板 &#xff1a; 即使这只是Hystrix实际操作的副作用&#xff08;断路器&#xff0c;线程池&#xff0c;超时等&#xff09;&#xff0c;它也往往是最令人印象深刻的功能。 为了使其工作&#…

C语言中的“三字母词”坑了工程师

某软件工程师接盘了前同事的项目&#xff0c;进度一拖再拖&#xff0c;最后发现问题出现在如下代码&#xff1a;// 注释语句 ??/2a b c;请注意代码中的“??/”&#xff0c;就是这注释隐藏的很深&#xff0c;让项目一拖再拖。"??/"会被编译器当作 /&#xff0c…

C 线程的使用~(下)

2.3 detach()detach() 函数的作用是进行线程分离&#xff0c;分离主线程和创建出的子线程。在线程分离之后&#xff0c;主线程退出也会一并销毁创建出的所有子线程&#xff0c;在主线程退出之前&#xff0c;它可以脱离主线程继续独立的运行&#xff0c;任务执行完毕之后&#x…

用c语言编写爱心的代码是什么

用c语言编写爱心的代码&#xff1a;输入完整代码如下&#xff1a;#include int main(void){float a,x,y;for(y1.5f; y>-1.5f; y-0.1f){for(x-1.5f; x<1.5f; x 0.05f){a x*x y*y-1;char ch a*a*a-x*x*y*y*y<0.0f?*: ; putchar(ch); }printf("\n");}retur…

c++ lambda 重载_您会后悔对Lambdas应用重载!

c lambda 重载编写好的API很难。 非常辛苦。 如果您希望用户喜欢您的API&#xff0c;则必须考虑很多事情。 您必须在以下两者之间找到适当的平衡&#xff1a; 用处 易用性 向后兼容 前向兼容性 之前&#xff0c;在我们的文章&#xff1a; 如何设计良好的常规API中&#xf…

7个华为关于C语言的经典面试题

1、找错void test1(){ char string[10]; char* str1"0123456789"; strcpy(string, str1);}这里string数组越界&#xff0c;因为字符串长度为10&#xff0c;还有一个结束符’\0’。所以总共有11个字符长度。string数组大小为10&#xff0c;这里越界了。PS&am…

linux数组操作 增删改查,linuxea:go数组与数组增删改查(19)

复合数据类型是集合类&#xff0c;并且可以存储多个单值。在golang中存储的数组是相同的数据类型&#xff0c;并且长度也是其中的一个属性。在go中&#xff0c;数组的长度一旦定义&#xff0c;就不可变。如果声明了长度的变量&#xff0c;只能赋值相同的长度的数组数组是具有相…

C语言的特点与创建的基本步骤是什么

C语言的特点与创建的基本步骤是&#xff1a;C 语言特点&#xff1a;1.C语言是一种成功的系统描述语言&#xff0c;用C语言开发的UNIX操作系统就是一个成功的范例;2.同时C语言又是一种通用的程序设计语言&#xff0c;在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不…

谷歌guava_Google Guava:您永远不会知道的5件事

谷歌guava每个开发人员可以使用哪些鲜为人知的Google Guava功能&#xff1f; 它是那里最受欢迎的库之一&#xff0c;它是开源的&#xff0c;您可能已经知道了&#xff0c;它来自人们玩Quidditch作为一项真正的运动的地方&#xff08;至少在The Internship上 &#xff09;。 它…

C语言strcmp函数用法

C语言strcmp函数用法strcmp函数语法为“int strcmp(char *str1,char *str2)”&#xff0c;其作用是比较字符串str1和str2是否相同&#xff0c;如果相同则返回0&#xff0c;如果不同&#xff0c;前者大于后者则返回1&#xff0c;否则返回-1。简单示例&#xff1a;char a[]"…

Linux C 服务器端这条线怎么走?

在校学生的编程语言和数据结构的基础还不错&#xff0c;我认为应该在《操作系统》和《计算机体系结构》这两门课上下功夫&#xff0c;然后才去读编程方面的 APUE、UNP 等书。下面简单谈谈我对学习这两门课的看法和建议&#xff0c;都是站在服务端程序员的角度&#xff0c;从实用…