C语言学习笔记(三): 选择结构程序设计

if语句

if(){}

if (a=1){printf("hehe");}  //单独一个if

if(){}else{}

int a = 1, b = 2;
	if (a == b) {
		printf("haha");    //if else
	}
	else
	{
		printf("hehe");
	}

if(){}else if(){}

int a = 1, b = 2;
	if (a == b) {
		printf("haha");
	}
	else if (a != b)  //else if
	{
		printf("hehe");
	}

switch语句

定义

switch语句是一种选择语句,它允许根据变量的不同值来执行不同的语句

switch(表达式)    //表达式的值应为整数类型(包括字符型)
{
case	常量1 : 语句1;break
case	常量2 : 语句2;break
    ⋮	    ⋮		⋮
case	常量n : 语句n;break
default :	    语句n+1  //可以没有default标号,若没有与switch表达式相匹配的case常量,则不执行任何语句
}

使用实例

要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为 60分以下。成绩的等级由键盘输入。

include <stdio.h>
int main()
{
	char grade;
	scanf("%c",&grade);
	printf("Your score:");
	switch(grade)
	{
	case 'A': printf("85~100\n");break;  //break表示使流程转到switch末尾
	case 'B': printf("70~84\n");break;
	case 'C': printf("60~69\n");break;
	case 'D': printf("<60\n");break;    
	default:  printf("enter data error!\n");  //上面语句都不执行,则执行default
	}
	return 0;
}

关系运算符和表达式

关系运算符优先级

image-20211210200942181


关系表达式

关系表达式是比较两个值的大小关系的表达式

  • 关系表达式的值是一个逻辑值,即“真”或“假”
  • 在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”
int main(){
	int a = 3, b = 2, c = 1;
	
	//因为“>”运算符是自左至右的结合方向,先执行“a>b”得值为1,再执行关系运算“1>c”,得值0,赋给f,所以f的值为0
	int f = a > b> c ; 
	printf("%d", f);  //输出0
}

逻辑运算符

运算符 举例 说明
! !a 如果a为假,则!a为真;如果a为真,则!a为假
&& a && b 如果a和b都为真,则结果为真,否则为假
` `
  • “&&”和“‖”是双目运算符,要求有两个运算对象(操作数); “!”是单目运算符,只要有一个运算对象
  • 优先次序:!>&&=, 即!为三者中最高的
  • 逻辑运算符两侧的数据类型可以是整型、字符型、浮点型

条件运算符

条件运算符由?:两个符号组成, 它也被称为三目运算符, 因为要求由三个表达式, 也是C语言中唯一的三目运算符

使用语法如下所示, 若expression1 的值为真(非0),则表达式的结果为 expression2 的值; 如果 expression1 的值为假(0),则表达式的结果为 expression3 的值

expression1 ? expression2 : expression3

下图突出了条件运算符的使用效果

image-20211210205244902

posted @ 2023-02-12 15:15  亨利其实很坏  阅读(64)  评论(0编辑  收藏  举报