精华内容
下载资源
问答
  • C语言判断语句进阶之真假

    千次阅读 2020-07-22 13:30:20
    C语言判断语句进阶之真假值 在机器语言中,不论是任何表达式,都会有真假值。 众所周知,在面对对象的高级编程语言中真假值的表示也都是用True(真)与False(假)来表示的。但是在面向过程的c语言中,是用0(假)与...

    C语言判断语句进阶之真假值

    在机器语言中,不论是任何表达式,都会有真假值。
    众所周知,在面对对象的高级编程语言中真假值的表示也都是用True(真)与False(假)来表示的。但是在面向过程的c语言中,是用0(假)与1(真)来表示的。并且真值不仅仅是1,所有不为零的值都是真值。

    即,在C语言中所有不为零的值都是真值,反之亦然。

    下面让我们来看一下在c语言中表达真假值的几种方式

    • 判断表达式

      判断表达式,也可以将其理解为数学中的真命题假命题。

      例如,6>7为假命题,即代表这个表达式值为假。所以显而易见,当判断表达式成立时,值为真;当判断表达式不成立时,值为假。

      下面让我们来看一个代码片段:

    /*代码片段 不可直接运行*/
    if(6>7) 
               printf("6>7成立");
    if(3-2==1) 
                printf("3-2==1成立");
    

    输出结果
    3-2==1成立

    • 运算表达式

      运算表达式,其实就是进行计算的语句。

      其真假,便是其最终结果。上文也有提过,C语言中真假为非零的所有数值。所以,在运算过后要出的结果不为零,则该表达式假为真。

      例如,6*2的值便为真。因为其结果为12,为非零数值。

    /*代码片段 不可直接运行*/            
    if(7-5)
          printf("7-5值为真");
    else
          printf("7-5值为假");
    

    输出结果
    7-5值为真

    • 数值

      这个就非常好理解了。即所有非零的值全部为真,当值为零时为假。

      也就是说,只有零是假值。

      在此不再耗费笔墨进行赘述。可参见运算表达式如何区分真假进行理解。

    新手必看,进行真假判断时如何使代码可读性更高!

    关于c语言真假值的定义,上文已经阐述完毕。这也就意味着,只要是表达式或数值,都可以进行比较。

    这也说明了c语言灵活性之高。在此,我给大家介绍一种模拟高级语言的真价值的方法,可以使代码更直接明了。

    这里涉及到C语言宏定义,如果有没有学习的同学,可以通过下方网址去进行学习。

    C语言宏定义学习:C语言宏定义#define 学习

    废话不多说,直接上代码!

    #include<stdio.h>
    #define True !0
    #define False 0
    int main(){
      printf("Hello world!");    
      return 0;
    }
    

    以上是模拟高级语言真假值的开发模板

    仔细的同学可能已经发现了,它比一般的开发模板多了两条宏定义语句。

    #define True !0
    #define False 0
    

    头脑比较灵活的同学,现在已经恍然大明白了。迫不及待的想说,这不就是把True定义成非0,把False定义为0嘛!

    没错,结合上文所说c语言中真假值的定义,不难发现True现在代表真值,False代表假值。

    在实际开发中,这可能显得很没用。但是,把他替换0与1,可以让人一眼就看出来哪里是真值,哪里是假值。

    更因为C语言表达式都有真假值,所以可以将表达式直接与其进行判断。这样在日常学习中,可以在少量注释甚至没有注释的情况下,把代码很快的顺下来。

    好啦,今日的分享就到这儿了。祝大家学习生活愉快!

    课堂总结
    通过文中所提供的模板,可以将0替换为False, 将非0替换为True。这样与高级语言的表达方式无二,并且能使自己的代码可读性更高。

    如有错误 欢迎大家在下方评论区指出

    展开全文
  • 分支语句 if switch 语句的定义 C语言中由一个分号==;==隔开的,就是一条语句,比如: > printf("Hello World !...如何判断真假呢? 0 为假,非 0 为真。 if (表达式) 语句; if (表达式) 语句; else


    一、C语言中语句的定义

    C语言中由一个分号 ; 隔开的,就是一条语句,比如:

    > printf("Hello World !");
    > 3 + 5;
    

    二、分支语句(选择结构)

    如果你好好学习,将来就进好公司敲代码。

    如果你不好好学习,将来就进小公司敲代码。

    这就是选择!

    2.1 if 语句:

    if 语句的结构

    表达式的结果如果是真,就执行语句;为假就不执行语句。

    如何判断真假呢?
    0 为假,非 0 为真。

    if (表达式)
    	语句;
    
    if (表达式)
    	语句;
    else 
    	语句;
    
    //多分支结构
    if (表达式1)
    	语句1;
    else if (表达式2)
    	语句2;
    else if (表达式3)
    	语句3;
    ......
    else 
    	语句 n ;
    

    代码演示

    //代码一
    #include <stdio.h>
    int main() {
    	int age = 0;
    	scanf("%d", &age);
    	if (age >= 18) {
    		printf("成年!\n");
    	}
    	return 0;
    }
    
    //代码二
    #include <stdio.h>
    int main() {
    	int age = 0;
    	scanf("%d", &age);
    	if (age < 18) {
    		printf("未成年!");
    	}
    	else {
    		printf("成年!");
    	}
    	return 0;
    }
    
    //代码三
    #include <stdio.h>
    int main() {
    	int age = 0;
    	scanf("%d", &age);
    	if (age < 18) {
    		printf("少年\n");
    	}
    	else if (age >= 18 && age < 30) {
    		printf("青年\n");
    	}
    	else if (age >= 30 && age < 50) {
    		printf("壮年\n");
    	}
    	else if (age >= 50 && age < 80) {
    		printf("老年\n");
    	}
    	else {
    		printf("长寿老人\n");
    	}
    	return 0;
    }
    

    练习题

    试判断该代码的输出值

    #include <stdio.h>
    int main() {
    	int a = 0;
    	int b = 2;
    	if (a == 1)
    		if (b == 2)
    			printf("hehe\n");
    	else
    		printf("haha\n");
    	return 0;
    }
    

    这很容易造成误导,结果什么都不输出。

    适当使用 { } 可以使代码的逻辑更加清楚。

    代码的风格很重要!

    更正

    #include <stdio.h>
    int main() {
    	int a = 0;
    	int b = 2;
    	if (a == 1) {
    		if (b == 2) {
    			printf("hehe\n");
    		}
    		else {
    			printf("haha\n");
    		}
    	}
    	return 0;
    }
    

    2.2 if 书写形式的对比

    试着判断两个代码是否是一样的:

    //代码一
    if (condition) {
    	return x;
    }
    return y;
    
    //代码二
    if (condition){
    	return x;
    }else{
    	return y;
    }
    

    结果是一样的!return 只能 return 一次。

    判断哪一种代码书写方式更好:

    //代码一
    int num = 1;
    if (num == 5) {
    	printf ("hehe\n");
    }
    
    //代码二
    int num = 1;
    if (5 == num){
    	printf("hehe\n");
    }
    

    第二种会好一些,因为可以避免 if 表达式中漏写一个“=”号,出现的 bug。


    2.3 关于 if 语句的练习题:

    1. 判断一个数是否为奇数
    2. 输出1-100之间的奇数

    代码1:

    //> 1. 判断一个数是否为奇数
    #include <stdio.h>
    int main() {
    	int num = 0;
    	scanf("%d", &num);
    	if (num % 2 == 1) {
    		printf("%d是奇数。\n", num);
    	}
    	return 0;
    }
    

    代码2:

    //> 2. 输出1 - 100之间的奇数
    #include <stdio.h>
    int main() {
    	int i = 1;
    	for (i = 1; i <= 100; i++) {
    		if (i % 2 == 1) {
    			printf("%d\n", i);
    		}
    	}
    	return 0;
    }
    

    2.4 switch 语句

    switch语句也是一种分支语句。常用于多分支结构的情况。

    比如:

    输入1,输出星期一
    输入2,输出星期二
    输入3,输出星期三
    。。。
    输入7,输出星期日

    若我们用前面学过的 if 语句来写,很麻烦,要不停的写 if else。
    那我们可以试一下用 swithc 语句。

    switch (整型表达式){
    	语句项;
    }
    

    语句项又是什么呢?

    case 整形常量表达式;
    	语句;
    

    而以上的结构,还要搭配 break 使用,这样才能实现分支

    例如:

    #include <stdio.h>
    int main() {
    	int day = 0;
    	scanf("%d", &day);
    	switch (day) {
    	case 1:
    		printf("星期一\n"); break;
    	case 2:
    		printf("星期二\n"); break;
    	case 3:
    		printf("星期三\n"); break;
    	case 4:
    		printf("星期四\n"); break;
    	case 5:
    		printf("星期五\n"); break;
    	case 6:
    		printf("星期六\n");
    		break;
    	case 7:
    		printf("星期七\n");
    		break;
    	}
    	return 0;
    }
    

    使用 break 关键字就会跳出 switch 结构,如果我们灵活使用 break,可以完成别的需求。

    输入1-5,输出的是‘weekday’;
    输入6-7,输出的是‘weekend’。

    #include <stdio.h>
    int main() {
    	int day = 0;
    	scanf("%d", &day);
    	switch (day) {
    	case 1:
    	case 2:
    	case 3:
    	case 4:
    	case 5:
    		printf("weekday\n");
    		break;
    	case 6:
    	case 7:
    		printf("weekend\n");
    		break;
    	}
    	return 0;
    }
    

    要擅用 break,把 switch 语句分割成不同的部分。


    default 子句

    如果 switch 表达式的值与所有的 case 标签都不匹配怎么办?假设用户就没有输入1-7,输入一个 0 会怎么样?

    其实也不会怎么样,就是结构的所有项都被跳过,执行 switch 之后的代码了。

    如果你不想忽略不匹配的所有 case 标签的值,这个时候可以使用 default 子句。
    default 子句在所有不匹配项过后,自动执行 default 子句后面的代码。所有每个 switch 语句中只有一个 default 子句。

    default 子句可以出现在语句列表的任何位置,而且执行顺序会先贯穿每一个 case 标签后再执行 default子句。

    在每个 switch 语句中都放一个 default 子句是个好习惯,甚至可以在后面加上 break。

    改良关于星期的 switch

    #include <stdio.h>
    int main() {
    	int day = 0;
    	scanf("%d", &day);
    	switch (day) {
    	case 1:
    	case 2:
    	case 3:
    	case 4:
    	case 5:
    		printf("weekday\n");
    		break;
    	case 6:
    	case 7:
    		printf("weekend\n");
    		break;
    	default:
    		printf("您输入有误!\n");
    		break;
    	}
    	return 0;
    }
    

    switch 练习:

    #include <stdio.h>
    int main() {
    	int n = 1;
    	int m = 2;
    	switch (n) {
    	case 1:
    		m++; //3
    	case 2:
    		n++; //2
    	case 3:
    		switch (n) { //2
    		case 1:
    			n++; 
    		case 2:
    			m++; //4
    			n++; //3
    			break;
    		}
    	case 4:
    		m++; //5
    		break;
    	default:
    		break;
    	}
    	printf("m = %d,n = %d\n", m, n); //5 3
    	return 0;
    }
    
    展开全文
  • 杂记之C语言之条件真假判断

    千次阅读 2012-11-07 11:51:00
    假设布尔变量名字为flag,它与零值比较的标准if 语句如下: 假设布尔变量名字为flag,它与零值比较的标准if 语句如下: if (flag) // 表示flag 为真 if (!flag) // 表示flag 为假 2、应当将整型变量用“==”或...

    1、不可将布尔变量直接与TRUE、FALSE 或者1、0 进行比较。

    假设布尔变量名字为flag,它与零值比较的标准if 语句如下:

    假设布尔变量名字为flag,它与零值比较的标准if 语句如下:
    if (flag) // 表示flag 为真

    if (!flag) // 表示flag 为假
    2、应当将整型变量用“==”或“!=”直接与0 比较。(常规写法)

    假设整型变量的名字为value,它与零值比较的标准if 语句如下:
    if (value == 0)
    if (value != 0)
    3、不可将浮点变量用“==”或“!=”与任何数字比较。(精度问题)

    千万要留意,无论是float 还是double 类型的变量,都有精度限制。所以一定要
    避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
    假设浮点变量的名字为x,应当将
    if (x == 0.0) // 隐含错误的比较
    转化为
    if ((x>=-EPSINON) && (x<=EPSINON))
    其中EPSINON 是允许的误差(即精度)。

    4、应当将指针变量用“==”或“!=”与NULL 比较

    指针变量的零值是“空”(记为NULL)。尽管NULL 的值与0 相同,但是两者意义不
    同。假设指针变量的名字为p,它与零值比较的标准if 语句如下:
    if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量
    if (p != NULL)

    补充说明:可以将上述表达式写成if(NULL==p)或者if(NULL!=p)防止写成if(NULL=p)

    笔记摘自《高质量C++/C 编程指南》 林锐

     

    展开全文
  • C语言循环语句

    2019-10-06 01:23:07
    文章目录while循环格式执行步骤示例注意do-while循环格式执行步骤示例for循环格式执行步骤示例注意 while循环 格式 while(表达式) //表达式为...计算表达式的值并判断真假 2.当值为真(非0)时,执行循环体代码块 ...

    while循环

    格式

         while(表达式)         //表达式为循环条件
         {
               执行代码块;   //执行代码块为循环体
         }
    

    执行步骤

         1.计算表达式的值并判断真假
         2.当值为真(非0)时,执行循环体代码块
         3.当循环到表达式为假(0)时,结束语句
    

    示例

    int i=0;
    while(i<10)
    {
          i++;
          printf("第%d遍书写:computer\n",i);
    }
    

    注意

    一定记着在循环体中改变循环变量的值,否则会出现死循环。

    do-while循环

    格式

         do
         {
             执行代码块;
         }while(表达式);
    

    执行步骤

         1.先执行循环中的执行代码块
         2.判断while中表达式是否为真
         3.如果为真则继续循环,如果为假则终止循环
    

    示例

    int i=0;
    do
    {
        i++;
        printf("第%d遍书写:computer\n",i);
    }while(i<10); //**注意分号**
    

    for循环

    格式

         for(表达式1;表达式2;表达式3)
             {
                     执行代码块;
             }
    

    执行步骤

        1.执行代码块1,对循环变量做初始化
        2.判断代表式2,若其值为真(非0),执行循环体中执行代码块,然后向下执行
        3.执行表达式3
        4.执行第2步
    

    示例

    int i;
    for(i=1;i<=10;i++)
        {
              printf("第%d遍书写:computer\n",i);
        }
    

    注意

    for循环中的分号一定要写

    • 表达式1
      • 省略表达式1,表示不对循环变量赋初始值
      • 表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式
      • 可以有多个表达式,以逗号分隔
    • 表达式2
      • 省略表达式2,不做其他处理循环一直进行
    • 表达式3
      • 省略表达式3,不做其他处理循环一直进行
      • 可以有多个表达式,以逗号分隔
    展开全文
  • C语言中的for循环语句

    2019-10-07 12:58:07
    C语言中for循环语句是最灵活的循环,最适用于知道循环次数的情况,再知道循环次数的情况下完全可以取代while循环。 for循环的格式如下 他的执行过程如下: 执行表达式1,为初始变量赋值 判断表达式2真假,若真则...
  • C语言判断真假的依据是:0为假,非0为真。 C语言的关系运算符: >:大于 >=:大于或等于 ==:是否等于 !=:不等于 C语言的逻辑运算符: &&:逻辑与,当两个操作数同时为真是结果才为真,只要有一个操作数为假...
  • C语言入门(八)条件语句

    万次阅读 2016-07-12 09:56:08
    一个表达式的返回值都可以用来判断真假,除非没有任何返回值的void型和返回无法判断真假的结构。当表达式的值不等于0时,它就是“真”,否则就是假。一样个表达式可以包含其他表达式和运算符,并且基于整个表达式的...
  • if语句只把括号内的语句当成一个bool值来判断,true就执行,false就不执行。 编译器会自动把所有可以转化为bool型表达式转化成bool型。 关系表达式就不用说了,直接求出真假即可。 数值常量转化成bool型时,按照非零...
  • if条件判断与if真假判断目录:1.正确写法2.错误写法3.总结一、正确写法在编写shell脚本时,为简化代码的行号及结构的简约型,通常将命令执行结果和判断通过一条语句进行编写(在C语言编写程序时,经常遇到此种写法)...
  • 9 月计算机二级 C 语言考点解析条件语句 2020 年 9 月计算机二级 C 语言考点解析条件语句 一个表达式的返回值都可以用来判断真假 除非没有任何返回值 的 void 型和返回无法判断真假的结构当表达式的值不等于 0 时 它...
  • C语言入门教程之五条件语句

    千次阅读 2008-07-21 11:15:00
    一个表达式的返回值都可以用来判断真假,除非没有任何返回值的void型和返回无法判断真假的结构。当表达式的值不等于0时,它就是“真”,否则就是假。一样个表达式可以包含其他表达式和运算符,并且基于整个表达式的...
  • 一个表达式的返回值都可以用来判断真假,除非没有任何返回值的void型和返回无法判断真假的结构。当表达式的值不等于0时,它就是“真”,否则就是假。一样个表达式可以包含其他表达式和运算符,并且基于整个表达式的...
  • C语言:控制流

    2021-03-06 13:54:38
    C语言中,通过一些特殊的复合语句来实现控制程序的执行流程 【1】循环控制流语句 控制程序循环执行某一块代码 1)while语句 语法格式: while(表达式){ //表达式值为逻辑值(真假值) //需要循环执行的某一...
  • C语言中的很多语句在执行过程中会涉及到条件的判断,如 if语句、switch语句、while语句、for语句等。而作为条件载体的可以是常/变量、算术表达式、关系表达式、逻辑表达式和赋值表达式。这些载体的值(即0或非0)即...
  • C语言——编程的开始

    千次阅读 2020-10-29 13:29:44
    if(/*条件真假判断,为真执行程序块1,否则不执行,跳到下一行*/){ //程序块1 }else{//即不满足if当中的条件时执行程序块2 //程序块2 } (2)if-elseif-……elseif-else语句 if(/*A*/){ //代码块1 }else if(/*B*...
  • C语言之调用函数—“黑盒子” 这是我第一次去我们学校acm的集训学到的东西,也是我第一个博客,现在来整理第一个内容。 引子 若题目中有一个要求:判断a,...常用于判断语句中,下面只写一下部分代码体现bool的应用。...
  • C语言中,逻辑 或 全...在C语言编译–链接–执行时,若算式1为真,则可确定该语句为真,因此算式2不进行判断真假。 因此,有经验的程序员会将为真的概率大的算式放在算式1的位置,从而间接提高程序的执行速度。 ...
  • 1. 条件判断 默认情况下,我们在程序中写的每一句正确代码都会被执行...在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”。 怎么判断真假呢?C语言规定,任...
  • C语言中的真与假

    千次阅读 2018-07-14 14:58:57
    C语言中在用到循环语句时,我们都会涉及到表达式真假判断,‘真值’有哪些?'假值'有哪些?我们用代码来实现看看tf.c 1 /****************************************************...
  • if语句是专门用来实现选择结构的语句,能够根据条件的真假,选择执行两种操作中的一种。if语句有两种形式 二、标准if-else格式 2. if(表达式) 表达式一般就是判断条件,一般是条件或者逻辑表达式。 4. 普及...
  • 考必过已经为各位考生精心整理出了2017年计算机二级C语言入门教程:条件语句的相关信息,仔细阅读相关规定和要求,避免耽误时间做无用功,详细内容如下:第四章 条件语句一个表达式的返回值都可以用来判断真假,除非...
  • (1)是对if (expression)中的expression的求值进行真假判断,真就执行,其实实际上是1,0,1为真,0为假 (2)if与else之间只能允许一条语句存在(简单语句或者复合语句) (3)区别:if语句用于选择是否执行一个...
  • 56 _ 选择6 _ C语言真假的处理 55 _ 选择5 _ if..else if...else...的用法 54 _ 选择4 _ if..else...的用法 53 _ 选择3 _ if的范围问题【重点】 52 _ 选择2 _ if最简单的用法 51 _ 选择1 _ if概述 50 _ 流程控制4 ...
  • (2)选择结构:程序根据所给条件,判断真假,从而在真假两种情况下选择执行对应的代码段。(3)循环结构:在满足所给条件时,循环执行给定的代码段。如图所示:二.选择结构 if 语句的4种结构和使用 第一种:if ...
  • break; continue; for循环 while循环 在循环中可以使用 break 语句随时终止循环的执行; 执行 break 语句后所在循环...可以通过判断循环变量的真假判断循环是否正常结束的; #include int main() {  int num = 0;
  • ==========for循环及for嵌套=========- ...),然后对表达式2进行真假判断,若为真(若为假则退出for循环),则执行一次循环体内容,后执行表达式3,表达式3执行完之后,重新对表达式2进行真假判断。 例如: ...

空空如也

空空如也

1 2 3
收藏数 43
精华内容 17
关键字:

c语言真假判断语句

c语言 订阅