- while语句
练习:
打印1-100之间的奇数
#include <stdio.h>
#include <stdlib.h>
int IsOdd(int x){
if (x%2 == 0){
return 0;
}
return 1;
}
int main(){
int i=1;
while (i<101){
if(IsOdd(1)){
printf("%d\n",i);
}
i++;
}
system("pause");
return 0;
}
- switch case语句
局限性:
1.若忘记break,代码会继续执行
2.case语句中无法定义变量
3.case语句判定的条件必须是int long short char等类型的变量(整数)
4.与if else的复杂度差不多
default:若所有的case都没有命中,则走到default分支中;使用swtich语句,必须使用default分支
- for语句
for(表达式1;表达式2;表达式3)
执行过程:
1.执行表达式1(初始化)
2.执行表达式2,判断是否执行循环体
3.执行循环体代码
4.执行表达式3,更新循环变量
5.执行表达式2,判定循环体是否要执行
6.若循环体中含有break,直接跳出循环
7.若循环体中含有continue,跳过本次循环的循环体代码,执行表达式3,在执行表达式2
......
若省略表达式1,只要对变量进行初始化,不影响
若省略表达式2,死循环
若省略表达式3,可将循环变量的更新语句放到循环体中
笔试:
请问循环要循环多少次?
#include <stdio.h>
int main()
{
int i = 0;
int k = 0;
for(i =0,k=0; k=0; i++,k++)
k++;
return 0;
}
解析:表达式2为赋值语句,k被赋值为0(假),因此循环0次。
若将表达式2改为k=1,则k被赋值为1(真),死循环。
练习:
编写代码,演示多个字符从两端移动,向中间汇聚
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
int main(){
char str1[]="hello good girl!";
char str1[]="****************";
int left =0; //该下标指向的元素为 w
int right=strlen(str1)-1; //该下标指向的元素为 !
printf("%s\n",str2);
while(left<=right){
Sleep(100); //休眠100毫秒
str2[left]=str1[left];
str2[right]=str1[right];
printf("%s\n",str2);
left++;
right--;
}
system("pause");
return 0;
}
- 整数除以整数,得到的仍是整数;浮点数除以整数/整数除以浮点数,得到的为浮点数