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

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

时间:2023-02-12 15:36:14浏览次数:37  
标签:case 语句 笔记 C语言 运算符 printf break 程序设计 表达式

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

标签:case,语句,笔记,C语言,运算符,printf,break,程序设计,表达式
From: https://www.cnblogs.com/henry666/p/17113863.html

相关文章

  • 新概念2册L27笔记(一般过去时系动词was/were&实意动词did(v.ed)、感官系动词)
    L27Awetnight本课单词和备注tentn.帐篷fieldn.田野、专业、学科、界限smellv.wonderfuladj.campfiren.creepv.爬行sleepingbagcomfortabl......
  • C语言学习: 文件流的缓冲
    没有缓冲有了缓冲  创建file变量时,传入的参数: 可以用fflush,清空缓冲区,让缓冲区内存的数据立刻打印出来。1#include<stdio.h>2#include<io_utils.h>......
  • C语言填空:strcpy功能实现
    #include<stdio.h>//将字符数组a的全部字符复制到字符数组b中(要求不用strcpy函数)//并输出新字符串【1】main(){chara[100],b[100];intc,d,f;【2......
  • Python网络爬虫与数据挖掘——复习笔记
    目录\(\ttrequests\)库爬取页面\(\ttrequests\)库爬取搜索引擎\(\ttrequests\)库爬取网络图片\(\ttrequests\)库爬取页面importrequests#引入库url="...........
  • C语言填空:回文字符串
    #include<stdio.h>//输入一个字符串(20个字符以内),判断其是否是回文字符串(回文字符串是指正反一样的字符串)。【1】main(){chara[21];intb,【2】,len;......
  • C语言--指针与数组
    1.数组的本质就是一片连续的内存;2.一些事实-使用取地址操作符&获取数组的地址-数组名可看作一个指针,代表数组中0元素的地址-当指针指向数组元素时,可......
  • C语言学习:计算时间差
     1#include<io_utils.h>2#include<time_utils.h>3#include<time.h>45#definePI3.141592667voidDoHardWork(){8doublesum=0;9......
  • C语言学习:解析时间
     1#define_XOPEN_SOURCE23#include<io_utils.h>4#include<time_utils.h>5#include<time.h>67intmain(){8long_time_tcurrent_time_in_......
  • C语言--深入理解指针与地址
    1.初学指针的军规--Type*类型的指针只保存Type类型变量的地址--禁止不同类型的指针相互赋值注意:指针保存的地址必须是有效地址eg:inti=10;floa......
  • PLC入门笔记8
    梯形图基础电路起保停电路 多点起保停电路    互锁控制电路    周期闪烁电路      这应该是等价的!! 定时器的接力电路  ......