四、选择结构程序设计

四、选择结构程序设计,第1张

C语言的两种:

1.if 语句,用来实现两个分支的选择结构

2.switch 语句,用来实现多分支的选择结构

用if语句实现选择结构

eg:输入两个实数,按由大到小的顺序输出这两个数

自测: 

#include 
//#include 
int main() {
	int a, b; //应该用float
	scanf_s("%d%d", &a, &b);
	if (a > b)
		printf("max=%d\nmin=%d\n", a, b);
	else
		printf("max=%d\nmin=%d\n", b, a);
}//不够严谨

 

 标准:

#include 
int main() {
	float a, b, t;
	scanf_s("%f%f", &a, &b);
	if (a < b )
	{
		t = b ;//中间值t,实现a与b值的互换
		b = a;
		a = t;
	}
	printf("%5.2f,%5.2f\n", a, b);
}

 

if语句的一般形式:

if(表达式)语句1

【else 语句2】

  • 表达式:关系表达式、逻辑表达式、数值表达式
  • else子句可有可无
  • 语句1和2可以简单句也可复合句

if语句常用三种形式:

if (表达式) 语句1
if (表达式) 语句1 else 语句2
if(表达式1)语句1
else if(表达式2)语句2
else if(表达式3)语句3
....
else if (表达式m)语句m
else 语句m+1

 关系运算符与关系表达式

关系运算符及其优先次序

优先级由高到低:算术运算符、关系运算符、赋值运算符

其中关系运算符(<、<=、>、>=)的优先级相同且高于(==、!=)

关系表达式

  • 用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式

关系表达式的值是一个逻辑值,即真(1)或假(0)

eg: d=a>b,如果a>b为真,赋值后d的值为1

逻辑运算符和逻辑表达式

  • 用逻辑运算符将关系表达式或其他逻辑量连接起来的式子就是逻辑表达式

eg: x>0 AND y>0 (与)

逻辑运算符及其优先次序

3种逻辑运算符:AND OR NOT(c语言中不能直接用)

AND &&

OR ||

以上二者是双目运算符,需要两个运算对象

NOT !

优先级由高到低:非>与>或

与和或低于关系运算符,高于算术运算符

逻辑表达式

在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符

eg: (m=a>b)&&(n=c>d)

当a=1,b=2,c=3,d=4,m和n的原值为1,由于“a>b”的值为0,因此m=0,此时后面的运算不必再进行,此时n的值不是0而是1

 

条件运算符和条件表达式

条件表达式 max=(a>b) ? a:b;

是条件运算符

如果(a>b)条件为真,则表达式的值等于a,否则取值b

条件运算符由两个符号(?和:)组成,必须一起使用。


要求有三个 *** 作对象,称为三目运算符,是c语言中唯一一个三目运算符

一般形式:

表达式1?表达式2:表达式3

eg:输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母,如果不是,不转换。


然后输出最后得到的字符

#include 
int main() {
    //条件表达式

	/*char ch;
	scanf_s("%c", &ch);
	ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;
	printf("%c\n", ch);
	return 0;*/
 //if语句
	char ch;
	scanf_s("%c", &ch);
	if (ch >= 'A' && ch <= 'Z')
	{
		ch = ch + 32;
		printf("%c\n", ch);
	}
	else
		printf("%c\n",ch);
	return 0;
}

 用switch语句实现多分支选择结构

switch语句是多分支选择语句

eg:考试成绩85分以上为A,70-84为B,60-69为C,60以下为D

#include 
int main() {
	char g;
	scanf_s("%c", &g);
	printf("成绩是:");
	switch (g)
	{
	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");
	}
	return 0;
}

 

 switch语句一般形式:

switch(表达式)
{
    case 常量1 :语句1
    case 常量2 :语句2
    ...
    case 常量n :语句n
    default : 语句n+1
}

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/607682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-14
下一篇 2022-04-14

发表评论

登录后才能评论

评论列表(0条)

保存