分支和循环(上)

本文详细介绍了C语言中的if语句、else、嵌套if结构、switch语句以及while、for和dowhile循环的语法和用法,展示了如何进行条件判断和多分支控制。
摘要由CSDN通过智能技术生成

一.if语句

1.if

if 语句的语法形式如下:
   1.if ( 表达式 )
   2.      语句
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行 在C语言中,0为假,非0表示真, 也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不 是0,则语句执行。

2.else

如果⼀个数不是奇数,那就是偶数了,如果任意⼀个整数,我们要清楚的判断是奇数还是偶数怎么表示 呢?
这里就需要 if...else... 语句了,语法形式如下:
1. if ( 表达式 )
2. 语句1
3. else

3.分支中包含多条语句

默认在 if 和 else 语句中默认都只控制一条语句,比如:
# include <stdio.h>
int main ()
{
  int age = 0 ;
  scanf ( "%d" , &age);
  if (age >= 18 )
  printf ( " 成年了\n" );
  printf ( " 可以谈恋爱了\n" );
  return 0 ;
}
上⾯的代码,你会发现输⼊的值不管是>=18 还是<18,"可以谈恋爱了" 都会打印在屏幕上。
这是因为 if 语句只能控制⼀条语句,就是 printf("成年了\n"); ,if语句为真,则打印成年了,
if语句为假,则不打印,对于 printf("可以谈恋爱了\n"); 是独⽴存在的,不管if语句的条件的真
假,都会被执⾏。那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来, else也可以加上大括号,如下:
# include <stdio.h>
int main ()
{
int age = 0 ;
scanf ( "%d" , &age);
if (age >= 18 ) //if 后使⽤ {} 控制多条语句 - 这个块也叫:程序块,或者复合语句
{
printf ( " 成年了 \n" );
printf ( " 可以谈恋爱了 \n" );
}
return 0 ;
}
# include <stdio.h>
int main ()
{
int age = 0 ;
scanf ( "%d" , &age);
if (age >= 18 ) //if 后使⽤ {} 控制多条语句 - 这个块也叫:程序块,或者复合语句
{
  printf ( " 成年了
\n" );
printf ( " 可以谈恋爱了 \n" );
}
else //else 后使⽤ {} 控制多条语句 - 这个块也叫:程序块,或者复合语句
{
printf ( " 未成年 \n" );
printf ( " 不可以早恋哦 \n" );
}
return 0 ;
}
4.嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连用,构成多重判断。
比如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:
# include <stdio.h>
int main ()
{
int num = 0 ;
scanf ( "%d" , &num);
if (num == 0 )
printf ( " 输⼊的数字是 0\n" );
else if (num > 0 ) // 这⾥的 if 相当于嵌套在 else 语句中,形成了嵌套结构
printf ( " 输⼊的数字是正数 \n" );
else
printf ( " 输⼊的数字是负数 \n" );
return 0 ;
}
上图中橙⾊背景的代码就是嵌套在前面的 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 ( " ⾮正数 \n" );
}
return 0 ;
}
上⾯的代码中橙色背景的代码也是嵌套在 if 语句中的,构成了嵌套的 if 语句。
以上就是嵌套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 ( " 少年 \n" );
else if (age<= 44 )
printf ( " ⻘年 \n" );
else if (age<= 59 )
printf ( " 中⽼年 \n" );
else if (age<= 89 )
printf ( " ⽼年 \n" );
else
printf ( " ⽼寿星 \n" );
return 0 ;
}
// 带上⼤括号更容易看明⽩
# include <stdio.h>
int main ()
{
int age = 0 ;
scanf ( "%d" , &age);
if (age< 18 )
{
printf ( " 少年 \n" );
}
else
{
if (age<= 44 )
{
printf ( " ⻘年 \n" );
}
else
{
if (age<= 59 )
{
printf ( " 中⽼年 \n" );
}
else
{
if (age<= 89 )
printf ( " ⽼年 \n" );
else
printf ( " ⽼寿星 \n" );
}
}
}
return 0 ;
}

二.switch循环

1.除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重

else if 改成更易⽤、可读性更好的形式。
1.switch (expression) {
2.case value1: statement
3.case value2: statement
4.default : statement
5.}
上面代码中,根据表达式 expression 不同的值,执行相应的 case 分支。如果找不到对应的值,
就执行  default 分支。
注:
switch 后的 expression 必须是整型表达式
case 后的值,必须是整形常量表达式

三.while循环

while循环
C语言提供了3种循环语句, while 就是其中一种,接下来就介绍一下 while 语句。
while 语句的语法结构和 if 语句非常相似。
四.for循环
        
for 循环是三种循环中使用最多的, for 循环的语法形式如下:
1 .for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想
包含更多的语句,可以加上大括号
2.
表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
五.do—while循环
在循环语句中 do while 语句的使⽤最少,它的语法如下:
do
语句;
while(表达式);
while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳
出循环;
而do while 循环则是先直接进⼊循环体,执行循环语句,然后再执行while 后的判断表达式,表
达式为真,就会进行下⼀次,表达式为假,则不再继续循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值