分支选择语句
if选择语句
if语法形式:1.if(表达式) 2.语句 例如:输入一个整数判断是奇数还是偶数
#include<stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
if(a%2==0)
printf("偶数\n");
else
printf("奇数\n");
return 0;
}
嵌套if 例如:输入一个整数,判断输入的整数是0,还是整数或者负数
#include<stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
if(a==0)
printf("输入的值是0");
else
{
if(a>0)
printf("正数\n");
else
printf("负数\n");
}
return 0;
}
//或者这样
#include<stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
if(a==0)
printf("输入的值是0");
else if(a>0)
printf("正数\n");
else
printf("负数\n");
return 0;
}
如果有多个if和else ,else总是和最近if匹配
#include<stdio.h>
int main()
{
int a=0;
int b=2;
if(a==1)
1.if(b==2)
printf("hehe\n");
2.else
printf("haha\n");//结果什么都不打印,1.和2.匹配a==1为假不运行下面代码
return 0;
}
switch选择语句
形式:switch(数据)
{case value1:statement
case value2:statement 注:switch后的数据必须是整形表达式和char
default:statement } case后的值,必须是整型常量表达式
根据数据中不同的值,执行相应的case分支,如果找不到相应的分支,就执行default分支。
例如:判断一周的作息时间
#include<stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
switch(a)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
循环语句
while循环语句
形式:while(表达式//为真执行循环语句,为假则不执行语句){语句};
例如:输入一个正整数,逆序打印这个整数的每一位
#include<stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
while(n)
{
printf("%d\n",n%10);
n=n/10;
}
return 0;
}
for循环语句
for(ex1;ex2;ex3)
ex1:对数据初始化,ex2进行判断,ex3:对循环变量调整
例如:打印1~10的数字
#include<stdio.h>
int main()
{
int i=0;
for(i=1;i<=10;i++)
{
printf("%d ",i);
}
return 0;
}
例如:打印100~200之间的素数
#include<stdio.h>
int main()
{
int i = 0;
for (i = 100; i < 201; i++)
{
int flag = 1;
int j = 0;
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
printf("%d ", i);
}
}
return;
}
do-while循环语句
形式:do
语句
while(表达式) ; 注:循环体至少执行一次
练习:输入一个正整数,计算这个正整数是几位数
#include<stdio.h>
int main()
{
int a=0;
int i=0
scanf("%d",&a);
do
{
i++;
a=a/10;
}while(a)
printf("%d\n",i);
return 0;
}
break和continue
例如:打印1~10的数字
#include<stdio.h>
int main()
{
int i=1;
while(i<=10)
{
if(i==5)
break;//作用是跳过循环,不管循环后期还有多少次,只要break执行,就结束
i++;
printf("%d",i);
}
return 0;
}
#include<stdio.h>
int main()
{
int i=1;
while(i<=10)
{
if(i==5)
continue;//跳过本次循环后面的代码,直接去判断部分
printf("%d",i);//打印1 2 3 4
i++;
}
return 0;
}
//或者
#include<stdio.h>
int main()
{
int i=1;
while(i<=10)
{
i++;
if(i==5)
continue;//跳过本次循环后面的代码,直接去判断部分
printf("%d",i);//打印除了5的其他数字
}
return 0;
}
循环嵌套
打印100~200中的素数
#include<stdio.h>
int main()
{
int i=0;
int a=0;
for(i=100;i<=200;i++)
{
int flag=1;
int j=0;
for(j=2;j<=i-1;j++)
{
if(i%j==0)
{
int flag=0;
break;
}
}
if(flag=1)
{
printf("%d ",i);
a++;
}
}
printf("\na=%d",a);
return 0;
}
goto函数
#include<stdio.h>
int main()
{
printf("hehe\n");
goto flag;//跳过haha直接打印heihei
printf("haha\n");
flag;
printf("heihei\n");
}