萌新的C语言成长日志2

选择结构

条件判断

计算机的智能是建筑在规则的基础上的,在遇到情况的时候,根据事先制定的规则做出判断,是计算机最基本的能力。

能做判断的基础,是能对数据做比较,比较就是关于两个数据是否相等、谁大谁小的结论,这需要用到关系运算:对两个数据之间的关系的计算。

C语言提供了六个关系运算符:

(1)== 相等 (2) != 不相等 (3)> 大于

(4)< 小于 (5)<= 小于或等于 (6)>= 大于或等于

注意其中有两个字符的运算符:==、>=和<=的两个字符必须紧紧连在一起,中间不能插入空格。

关系运算的结果是一个逻辑值,逻辑值只有两种可能的值:true(真,1表示成立)或false(假,0表示不成立)。当两个值的关系符合关系运算符的预期时,关系运算的结果为true,否则为false。

优先级:算术运算符优先级最高,关系运算符次之,赋值运算符优先级最低。

#include<stdio.h>

int main()
{
	const double RATE = 8.25;
	const int STANDARD = 40;
	double pay = 0.0;
	int hours; 
	printf("请输入工作的小时数:");
	scanf("%d",&hours);
	printf("\n");
	if(hours > STANDARD)
	{
		pay = STANDARD * RATE + (hours - STANDARD) * (RATE * 1.5);
	}
	else
	{
		pay = hours * RATE;
	}
	printf("应付工资:%f\n", pay);
	return 0;
}

if语句和用if语句构成的选择结构

if语句有两种基本形式(1)不含else子句的if语句(2)含else子句的if语句
不含if子句的if语句形式:if(表达式)语句
含if子句的if语句形式:
if(表达式)语句1
else 语句2
执行过程:首先计算紧跟在if后面一对圆括号中的表达式的值。如果表达式的值为非零(“真”),则执行其后的if子句,然后去执行if语句后的下一条语句;如果表达式的值为零(“假”),则跳过if子句,直接执行if语句后的下一条语句。

else不是一条独立的语句,它只是if语句的一部分
发生嵌套时,if子句的一对花括号不可缺少,else子句总是与前面最近的不带else的if相结合

#include <stdio.h>

int main()
{
	int g;
	printf("Enter g:");
	scanf("%d", &g);
	printf("g = %d:", g);
	if(g >= 90)
	printf("A\n");
	else if(g >= 80) printf("B\n");
	else if(g >= 70) printf("C\n");
	else if(g >= 60) printf("D\n");
	else printf("E\n");
	return 0; 
}

条件表达式构成的选择结构

条件表达式形式: 表达式1?表达式2:表达式3
当表达式1的值为非零时,条件表达式值为表达式2的值。当表达式1的值为0时,条件表达式的值为表达式3的值

switch语句以及用switch语句和break语句构成的选择结构

switch 语句形式:
switch(表达式)
{
case 常量表达式1 :语句1
case 常量表达式2 :语句2

case 常量表达式n :语句n
default :语句n+1
}

执行过程:先计算表达式的值,再寻找与该值符合的case标号,如果有则执行该标号后开始的语句,如果没有则从default标号后的语句开始执行。

break语句又称为间断语句,每当执行到break语句时,立即跳出switch语句体。
goto语句称为无条件转向语句
goto 语句标号;
goto语句的作用就是把程序的执行转向语句标号所在的位置。

#include <stdio.h>

int main()
{
	int g;
	printf("Enter a mark:");
	scanf("%d", &g);
	printf("g = %d:", g);
	switch(g/10)
	{
		case 10 :
		case 9 : printf("A\n"); break;
		case 8 : printf("B\n"); break;
		case 7 : printf("C\n"); break;
		case 6 : printf("D\n"); break;
		default: printf("E\n");
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值