C语言if语句的基本用法_c语言if语句的用法-程序员宅基地

技术标签: c语言  C语言篇  

一、if(…) {…}
1.一般形式:
if (表达式) {语句;}

表达式:
a,用非 0 值表示真,用 0 表示假;
b,if(flag) 相当于 if(flag!=0);
c,浮点数无法与 0 比较,只能用近似的值比较;例: 1e-6 等于1x10的-6次方可以看成0来使用;

2.用于单分支选择结构;
3.如含有交叉关系,使用并列的if语句;

例1:输出两个整数中的最大值

#include <stdio.h>
void main()
{
    
     int a,b;
     printf("请输入两个整数:");
     scanf("%d %d",&a,&b);
     if(a>b)
     {
    
     printf("max = %d\n",a);
     }
     if(a<b)
     {
    
     printf("max = %d\n",b);
     }
}

二、if(…) {…} else {…}

  1. 一般形式: if(表达式) {语句1; } else { 语句2;}
  2. 用于双分支控制的条件语句;
  3. 用于非此即彼的关系时;

例2:输出两个整数中的最大值

例2关于对于非法字符的检查与处理

#include <stdio.h>
void main()
{
    
	int a,b,max,data;
	printf("Input a,b:");
	data = scanf(" %d,%d",&a,&b);/*记录scanf()的返回值;*/
	if(data!=2)/*根据scanf()的返回值判断输入数据个数或者格式是否错误*/
    {
    
		printf("格式输入错误!");
		fflush(stdin);/*清除输入缓冲区中的错误内容(fflush()可能带来可移植性的问题)*/
	}
	else
	{
    
		max = a>b?a:b;/*三目运算符(a>b值为真则输出a的值,反之输出b的值)*/
		printf("%d\n",max);
	}

}

三、if(…) {…} else if(…) {…} … else if(…) {…} else {…}

  1. 一般形式:
    if(表达式1) { 语句1;}
    else if(表达式2) {语句2;}

    else if(表达式n){语句n;}
    else{语句n+1;}

  2. 用于多分支的控制的条件语句;

例3:判断字符

#include <stdio.h>
void main()
{
    
	char ch;
	printf("请输入一个字符:");
	ch = getchar();/*getchar、putchar专门用于字符输入输出;
				     getchar()写法上要写为 变量 = getchar();
					 putchar()用法为putchar(变量);
					 putchar('\n')输出一个控制符;
					 putchar('字母/字符');输出字母/字符;
					 */
	if(ch<=31)
	{
    
		printf("这是一个控制字符或通讯专用字符!\n");
	}
	else if(ch >= '0' && ch <= '9')
	{
    
		printf("这是一个数字!\n");
	}
	else if(ch >= 'A' && ch <= 'Z')
	{
    
		printf("这是一个大写字母!\n");
	}
	else if(ch >= 'a' && ch <= 'z')
	{
    
		printf("这是一个小写字母!\n");
	}
	else
	{
    
		printf("这是其他字符!\n");
	}
}

四、switch() {case …: …; case …: …; … default: …;}

  1. 一般形式:
    switch(表达式)
    {
    case 常量1:语句1;
    case 常量2:语句2;

    case 常量n:语句n;
    default: 语句n+1;
    }
  2. 用于多路选择的语句;

switch语句相当于多个if-else语句;
(表达式)只能是char型或者int型;
case 后面至少要有一个空格,常量后面是冒号
(表达式)与 常量类型要保持一致;
记得记得记得 在需要跳出的时候,在语句后面加上break;

例4:简单的加减乘除计算

#include <stdio.h>
void main()
{
    
	double a,b;
	char ch;
	printf("Input a(+ - * /)b:");
	scanf("%f%c%f",&a,&ch,&b);
	switch(ch)
	{
    
	case '+':
		printf("%f%c%f=%.2f\n",a,ch,b,a+b);/*%.2f表示精度,可以理解为保留两位小数*/
		break;
	case '-':
		printf("%f%c%f=%.2f\n",a,ch,b,a-b);
		break;
	case '*':
	case 'X':
	case 'x':
		printf("%f%c%f=%.2f\n",a,ch,b,a*b);/*输入"x" "X" "*" 都执行这一条语句;不加break,会顺语句执行*/
		break;
	case '/':
		printf("%f%c%f=%.2f\n",a,ch,b,a/b);
		break;
	default:
		printf("请输入正确算式!\n");
	}
}

扩展
5.1:C语言中输出格式%m.nf的意思

  • m:表示宽度
  • .n:表示精度
假设,
i=10.1;
printf("%5.2f",i);

输出结果为 10.10(m=5,其中空格占1位,小数(n)占2位)

本文出现任何错误,欢迎留言批评指正。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46623617/article/details/105346418

智能推荐

python——爬虫与脚本_python爬虫脚本-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏4次。关于py在其他方面的脚本或爬虫应用_python爬虫脚本

iOS开发进阶(九):OC混合开发嵌套H5应用并互相通信_ios 和h5通信-程序员宅基地

文章浏览阅读863次,点赞25次,收藏23次。APP开发过程中,当某些待集成三方SDK不得不使用原生技术栈集成实现时,抽离出公共功能部分并由H5实现是不错的解耦选择,为此便涉及到原生应用如何集成三方SDK,如何嵌套H5,并实现原生与H5通信。_ios 和h5通信

(转)火车算法-程序员宅基地

文章浏览阅读1k次。转至:http://www.cnblogs.com/wenfeng762/火车算法详细说明了按代收集的垃圾收集器的成熟对象空间的组织。火车算法的目的是为了在成熟对象空间提供限定时间的渐进收集。概述 在传统编程语言中, 对于那些无用对象, 程序员需要在原本指向这个对象引用都消失之前之前, 回收它所占据的内存空间(这里的消失指的是引用不再指向这个对象)。这导致了两个常见的..._火车算法

python中的万能分页-程序员宅基地

文章浏览阅读73次。若是使用django这个框架,这个框架自带了一个分页的功能!Paginator对象方法init(列表,int):返回分页对象,参数为列表数据,每面数据的条数属性count:返回对象总数属性num_pages:返回页面总数属性page_range:返回页码列表,从1开始,例如[1, 2, 3, 4]方法page(m):返回Page对象,表示第m页的数据,下标以1开始..._python中的流氏分页

【react】理解Fiber_react的fiber-程序员宅基地

文章浏览阅读318次。所以假如虚拟DOM很深的话,由于 JS线程和浏览器 GUI 线程是互斥的,处理 js 的时间过长,会导致浏览器刷新的时候掉帧,造成卡顿。把一个耗时长的任务分成很多小片,每一个小片的运行时间很短,虽然总时间依然很长,但是在每个小片执行完之后,都给其他任务一个执行的机会,这样唯一的线程就不会被独占,其他任务依然有运行的机会。在这个阶段的开始,Fiber 有已经在 UI 上渲染的 current 树,finishedWork,或者在渲染阶段建立的 workInProgress 树和效果列表。_react的fiber

【C语言】栈(Stack)的实现(定义、入栈、出栈、销毁)|图解数据结构,超详细解析_c stack-程序员宅基地

文章浏览阅读3.4k次,点赞12次,收藏15次。定义一个栈结构体。_c stack

随便推点

python绘制图形沙漏_pytorch-pose一个用于二维人体姿势估计的PyTorch工具包。 - pytorch中文网...-程序员宅基地

文章浏览阅读1.7w次。pytorch-posePyTorch-Pose是2D单人姿态估计的一般流水线的PyTorch实现。其目的是为最流行的人体姿态数据库(如MPII人体姿态,LSP和FLIC)提供训练/推理/评估的接口,以及带各种数据增强选项的数据采集器。用于数据准备和增强的一些代码来自Stacked沙漏网络。感谢原作者。特征多线程数据加载多GPU训练记录仪培训/测试结果可视化安装1、PyTorch(>=0.2..._pytorch-pose

(单用户/多用户)远程连接GPU服务器上的jupyter notebook解决方案_多用户多环境jupyter notebook解决方案-程序员宅基地

文章浏览阅读1.9k次,点赞3次,收藏6次。远程连接GPU服务器上的jupyter notebook近期由于要跑一些cv方向的代码,自己的电脑GPU太垃圾,根本跑不动。正好实验室有GPU服务器,配了2块Nvidia Geforce RTX 2080 Ti。然后就涉及到需要在自己的笔记本上远程连接服务器上的jupyter notebook来使用GPU服务器上的算力。以下分为单用户和多用户的解决方案。单用户就是1个账号上运行1个jupyter notebook服务,只需要分配一个端口;多用户就是你一个账号要开n个jupyter notebook服务_多用户多环境jupyter notebook解决方案

SAP系统会计凭证出口OBBH/GBB1抬头与行项目的替代使用_sap obbh-程序员宅基地

文章浏览阅读4.7k次。针对某些特定类型的财务记账,希望对凭证做统一的处理,如 成本中心a001+科目1001的记账成本中心全部替换为b001;凭证抬头文本字段=年度+凭证编号;以上需求都是可以通过OBBH实现的标准替换:例如果希望以前段业务的字段做条件进行替代,则需要OBBH+增强进行实现了..._sap obbh

STM32之NB-IoT学习(一)——NB-IoT介绍_物联网lot学习-程序员宅基地

文章浏览阅读3.1k次,点赞3次,收藏32次。这篇先总结一下NB-IoT的基本知识,下一篇再涉及相关单片机程序代码。_物联网lot学习

c语言函数编译成mips汇编,如何在没有main的情况下运行MIPS程序并从C程序调用MIPS程序...-程序员宅基地

文章浏览阅读283次。好的,所以我花了一段时间,但我终于得到了答案.我知道很多这可能很简单,但我只是为了那些和我一样困惑的可怜的灵魂而把它放在那里.所以这是我发现的两个问题:1:如何在没有main的情况下运行我的MIPS程序程序组装完成后,需要在某处安装主程序.单独组装时,程序需要在标题中声明main.像这样:.abicalls.option pic0.globl main.set nomips16.ent main...._mips汇编语言没有main函数吗

有人邀请ABCDEF六人参加一项会议,这六个人有些奇怪因为他们有很多要求-程序员宅基地

文章浏览阅读1.7k次。有人邀请ABCDEF六人参加一项会议,这六个人有些奇怪因为他们有很多要求,已知:(1)AB两人至少有一人参加会议(2)AEF三人中有两人参加会议(3)B和C两人一致决定要么两人都去,要么两人都不去。(4)AD两人中只有一人参加会议(5)CD两人中也只有一人参加会议(6)如果D不去,那么E也决定不去那么最后究竟有几个人参加会议?#include &lt;iostr..._某晚会邀请abcdef

推荐文章

热门文章

相关标签