1 分支语句
1.1 if的选择结构
1.1.1 if的用法
if() //如果括号内为真(1),执行下面的语句
语句;
else
语句;
//因为if是分支语句,所以最多执行一个if或者else里面的语句
0表示假,非0表示真
int main()
{
int a = 0;
if (a == 0)
printf("%d\n,a");//条件成立,直接输出a的值
return 0;
1.1.2 if else的用法
if只能实现单分支,但如果使用if else语句就可以实现多分支
int main()
{
int age = 10;
scanf("%d", &age);
if (age > 18)
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>=18 && age<30)
{
printf("青年\n");
}
else if(age>=30 && age<50)
{
printf("中年\n");
}
else if(age>=50 && age<80)
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
}
//&&代表的是逻辑上的与,同时成立的时候判断为真
1、判断一个数是否为奇数
#include<stdio.h>
int main()
{
int num = 0;
scanf("%d",&num);
if (num % 2 == 1)
printf("奇数\n");
else
printf("偶数\n");
return 0;
2、输出 1 - 100 之间的奇数:
#include<stdio.h>
int main()
{
int num = 0;
for (num = 0; num < 100; num++)
{
if (num % 2 == 1)
printf("%d\n", num);
}
return 0;
4、打印闰年 1000 - 2000
#include<stdio.h>
int main()
{
int a, j;
int i = 0;
for (a = 100; a <= 200; a++)
{
for (j = 2; j < a; j++)
{
if (a % j == 0)
{
break;
}
}
if (j == a)
{
printf("%d ", a);
i++;
}
}
printf("\ncount=%d ", i);
return 0;
}
switch语句
1.2.1 switch语句的语法结构
switch(date)
{
case 数值:
语句;
case 数值:
语句;
case 数值:
语句;
..
default :
语句;
}
在switch语句中的 break:在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
#include <stdio.h>
int main()
{
int day = 0;
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}
如果表达的值与所有的case标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签 default: 写在任何一个 case 标签可以出现的位置。
当 switch表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
2 循环语句
2.1while语句
2.1.1while的用法
while( 判断条件 )
{
语句;
}
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
使用示例
1.用while打印1—10
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d\n", i);
i++;
}
return 0;
}
2.只打印数字字符而忽略其他字符
#include<stdio.h>
int main()
{
char ch = '\0';
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch > '9') //ch 的ASCII值小于 0 的值 或者 大于9的
continue;
putchar(ch);
}
//只打印数字字符
return 0;
}
3.写一个代码打印1-100之间所有3的倍数的数字(for)
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1; i < 100; i++)
{
if (i % 3 == 0)
printf("%d ", i);
}
return 0;
}
4.找两个数的最大公约数
用辗转相除法,找t作为a和b的余数, b 令成 a , t 再令成 b,
#include<stdio.h>
int main()
{
int a, b, t;
int i = 0;
scanf("%d %d", &a, &b);
while (t = a % b)
{
a = b;
b = t;
}
printf("%d\n", b);
return 0;
while语句中的break和continue
//break 代码实例
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
总结:
break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。
continue介绍
//continue 代码实例2
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
i = i+1;
if(i == 5)
continue;
printf("%d ", i);
}
return 0;
}
总结:
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
2.2 for语句
2.2.1 for语句的用法
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。
实际的问题:
使用for循环 在屏幕上打印1-10的数字。
for(表达式1; 表达式2; 表达式3)
循环语句;
#include <stdio.h>
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
break和continue在for循环中
我们发现在for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
但是还是有些差异:
//代码1
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
break;
printf("%d ",i);
}
return 0;
}
//代码2
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;
printf("%d ",i);
}
return 0;
}
2.3 do while语句
2.3.1 do while的用法
do
循环语句;
while(表达式);
do语句的特点
循环至少执行一次,使用的场景有限,所以不是经常使用。
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
}while(i<10);
return 0;
}
do while循环中的break和continue
#include <stdio.h>
int main()
{
int i = 10;
do
{
if(5 == i)
break;
printf("%d\n", i);
}while(i<10);
return 0;
}
#include <stdio.h>
int main()
{
int i = 10;
do
{
if(5 == i)
continue;
printf("%d\n", i);
}while(i<10);
return 0;
}