分支与循环(1)

今天的练习比较多,希望大家多多动手哦!!!

if 、 switch 实现选择结构,for 、 while 、 do while 实现C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构循环结构

1.if语句

if...else..语法形式

if(表达式)
语句1
else
语句2

if语句执行流程(在C语⾔中,0为假,⾮0表⽰真)

例子:成年了,可以谈恋爱了。

#include<stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age >= 18)
        printf("成年了,可以谈恋爱");
    else
        printf("未成年,不能谈恋爱");
    return 0;
}

那如果我们要if语句同时控制2条语句,那就要使⽤{} 将代码括起来, else 后也可以跟上⼤括号。

如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

嵌套if

if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。

输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数

#include<stdio.h>
int main()
{
  int num=0;
  scanf("%d",&num);
   if(num>0)
   {
     if(num%2==0)
     printf("偶数\n");
     else
     printf("奇数\n");
   }
   else
  { 
    printf("非正数");
  }
return 0;
}

 

判断输入的值为奇数或偶数时,就构成了嵌套if语句,有了嵌套if语句,就可以完成更多复杂逻辑的判断。

练习一下吧:

 输⼊⼀个⼈的年龄

如果年龄 <18 岁,打印 " 少年 "

如果年龄在 18 岁⾄ 44 岁打印 " ⻘年 "

如果年龄在 45 岁⾄ 59 岁打印 " 中⽼年 "

如果年龄在 60 岁⾄ 89 岁打印 " ⽼年 "

如果 90 岁以上打印 " ⽼寿星 "

//方法1
#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	if (age < 18)
		printf("少年");
	else
	{
		if (age <= 44)
			printf("青年");
		else
		{
			if (age <= 59)
				printf("中老年");
			else
			{
				if (age <= 89)
					printf("老年");
             else
                 printf("老寿星");
			}
		}
	}
	return 0;
}
//方法2
#include<stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age < 18)
        printf("少年");
    else if (age <= 44)
        printf("青年");
    else if (age <= 59)
        printf("中老年");
    else if (age <= 89)
        printf("中老年");
    else if(age > 90)
        printf("老寿星");
    return 0;
}
2.关系操作符

C语⾔⽤于⽐较的表达式,称为“关系表达式”,⾥⾯使⽤的运算符就称 为“关系运算符”,主要有下⾯6个。

> 大于  <小于  >=大于等于  <=小于等于   ==相等  !=不相等

注意1.相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。有时候,可能会不⼩⼼写 出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。(因为我就很容易出错,在这提个醒儿)2.多个关系运算符不宜连⽤

3.条件操作符

条件操作符是三目操作符。

exp1?exp2:exp3

条件操作符的计算逻辑是:如果 exp1 为假, exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp3 计算,计算的结果是整个表达式的结果。

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
scanf("%d %d", &a, &b);
	if (a > 5)
		b = 3;
	else
		b = -3;
	printf("%d\n", b);
	return 0;
}
//将以上函数改为三目操作符
#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d", &a);
	b = a > 5 ? 3 : -3;
	printf("%d", b);
	return 0;
}
//练习2利用条件操作符比较两数大小
#include<stdio.h>
int main()
{
    int a, b;
    int max;
    scanf("%d %d", &a, &b);
    max = a > b ? a : b;
    printf("%d", max);
    return 0;
}


4.逻辑操作符

! :逻辑取反运算符(改变单个表达式的真假)。

&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。

|| :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。

练习:闰年的判断

1.能被4整除并且不能被100整除是闰年

2. 能被400整除是闰年

#include<stdio.h>
int main()
{
	int year = 0;
	scanf("%d", &year);
	if (((year % 4 == 0 )&&( year % 100 != 0)) || (year % 400 == 0))
		printf("%d为闰年", year);
	else
		printf("%d不是闰年",year);
	return 0;
}

短路:C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。

如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

对于&&操作符来说,左边操作数的结果是0的时候(即为假),右边操作数就不再执⾏

 || 操作符的左操作数的结果不为0时(即为真),就⽆需执⾏右操作

像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短 路求值。

今天就先到这里吧,大家要多加练习哦!if以及一些操作符的用法真的很重要,需要打好基础才能进行接下来的学习。

这些练习希望大家能不看答案自主完成,OK!!开始战斗吧!!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值