C语言if语句的基本用法

C语言if语句的基本用法C语言if语句的基本用法一、if…1.一般形式:if(表达式){语句;}表达式:a,用非0值表示真,用0表示真;b,if(flag)相当于if(1==flag)c,浮点数无法与0比较,只能用近似的值比较;例:(1e-6)相当于1×10的-6次方;2.用于单分支选择结构;3.如含有交叉关系,使用并列的if语句;例:输出两个整数中的最大值#inclu…

大家好,又见面了,我是你们的朋友全栈君。

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

表达式:
a,用非 0 值表示真,用 0 表示假;
b,if(flag) 相当于 if(flag!=0);
c,浮点数无法与 0 比较,只能用近似的值比较;例: 1e-6 等于1×10的-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位)

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144383.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021 goland激活码[在线序列号]

    2021 goland激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
  • 史上最简单的 MyBatis 教程(一)

    史上最简单的 MyBatis 教程(一)1简介MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,其几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。MyBatis应用程序大都使用SqlSessionFac

    2022年10月26日
  • Git配置账号信息

    Git配置账号信息在前面我们已经简单的说了一下Git是什么,用来干嘛什么,他与SVN的区别,以及它的安装。今天我们接着讲,当第一次下载后我们如何配置自己Git账号信息(这里可以是Github也可以是国内的码云账号等等),下面我们开始主题:这里大概有两种方式一种是通过全局配置信息让所有的项目都使用这个账号,另一种是在指定项目下配置单独的信息默认在我们第一次下载后Git后我们最好是配置到自己…

    2022年4月12日
  • SQL Server触发器创建、删除、修改、查看示例步骤[通俗易懂]

    SQL Server触发器创建、删除、修改、查看示例步骤[通俗易懂]一﹕触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。二﹕SQLServer为每个触发

    2022年7月2日
  • 如何用格式工厂转换视频格式为mp4_格式工厂怎么转换avi

    如何用格式工厂转换视频格式为mp4_格式工厂怎么转换avi第一步:选择输出格式MP4。【▲图1】第二步:打开源视频文件。【▲图2】第三步:打开输出配置,选择视频编码:AVC(H264)。【▲图3】第四步:点击开始。【▲图4】第五步:找到输出视频。【▲图5】…

    2022年10月10日
  • tomcat日志配置——如何查看日志

    tomcat日志配置——如何查看日志Tomcat日志设定1、Tomcat日志概述Tomcat日志信息分为两类:一、是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。二、是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。2Tomcat日志配置2.1访问日志的配置默认tomcat不记录访问日志,如下方法可以使tomc…

    2022年6月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号