其他分享
首页 > 其他分享> > 小白眼里的循环

小白眼里的循环

作者:互联网

关于switch()语句

一般形式:

 switch(整形表达式)
 {
     case整型常量表达式1:语句1
     break;
     case整型常量表达式2:语句2
     break;
     case整型常量表达式3:语句3
     break;
     ……
     default:语句
     break;
 }

break与default的使用
没有写break则会直接跳转至下一个case或语句;
default用于情况都不存在时;

关于if语句

 #include<stdio.h>
 int main(void)
 {
 int num=4
    if(num=5)//这里的=是赋值,应使用==,并且编译器不会报错
      printf("hahaha\n");
 }

改进后;

 #include<stdio.h>
 int main(void)
 {
 int num=4
    if(5==num)//倒着写时,少打一个等号,编译器会报错
      printf("hahaha\n");
 }

while循环

模型:

 while(条件)
 {
 语句
 }

continue用于结束本次循环,它之后的代码不会执行,直接跳转到while语句的判断部分,进行下一次循环入口判断

#include<stdio.h>
int main(void)
{
int i = 0;
while (i < 10)
{
	i++;
	if (i == 5)
		continue;
	printf("%d ", i);
}
结果是:1 2 3 4 6 7 8 9 10

换种写法后:

#include<stdio.h>
int main(void)
{
int i = 0;
while (i < 10)
{
	if (i == 5)
		continue;
	printf("%d ", i);
    i++;
}
结果是:1 2 3 4 进入死循环

getchar()与putchar()

getchar():接收
putchar():输出

 int ch = getchar();//ch=getchar():赋值给ch
 putchar(ch);
 printf("%c\n", ch);//putchar(ch):打印ch即printf("%c",ch);

另一种情况:

int ch = 0;
while ((ch = getchar()) != EOF)
{
	putchar(ch);
}

ctrl+z:结束运行
EOF:end of file(文件结束标志,也指-1)

for 循环

 for(表达式1;表达式2;表达式3)
 循环语句;

表达式1:为初始化部分,用于初始化循环变量。
表达式2:为条件判断部分,用于判断循环何时终止。
表达式3:为调整部分,用于循环条件的调整。
for循环里也可以出现break与continue
使用break:

#include<stdio.h>
int main(void)
{
int i;
for (i = 1; i <= 10; i++)
{
	if (i == 5)
		break;//跳出直接到return 0;
	printf("%d ", i);
}
return 0;
}
结果是:1 2 3 4

使用continue:

#include<stdio.h>
int main(void)
{
int i;
for (i = 1; i <= 10; i++)
{
	if (i == 5)
		continue;//回到for()语句
	printf("%d ", i);
}
return 0;
}
结果是:1 2 3 4 6 7 8 9 10

注意:
1、不可在for循环体内改变循环变量,防止for循环体失控
2、建议for语句的循环控制变量的取值采用“前闭后开区间写法”
例如:

#include<stdio.h>
int main(void)
{
int i;
for (i = 1; i <= 10; i++)//前后都是闭区间
{
	if (i = 5)//此处写错,变量赋予新的值,一直循环,建议反写:if(5==i)
		continue;//回到for()语句
	printf("%d ", i);
}
return 0;
}

for循环的变种

#include<stdio.h>
int main(void)
{
int i=0;
for (;;)
{
printf("%d ", i);
}
return 0;
}
结果是:无限打印0

1、for循环的初始化、判断、调整都可以省略,但是,for循环的判断部分如果被省略,那么判断条件就是:恒为真
2、如果不是十分熟练,建议不要随便省略代码

#include<stdio.h>
int main(void)
{
int i=0;
int j=0;
for (;i<10;i++)
{
   for(;j<10;j++)//由于初始化被省略,所以每一次再进入for循环时,j为最后一次结果10
printf("%d ", j);
}
return 0;
}
结果是:0 1 2 3 4 5 6 7 8 9

订正:

#include<stdio.h>
int main(void)
{
int i = 0;
int j = 0;
for (i=0; i < 10; i++)//此处的i=0可以省略
{
    for (j=0; j < 10; j++)
        printf("%d ", j);
}
return 0;
}

另一种:
#include<stdio.h>
int main(void)
{
int i=0;
int j=0;
for(i=0,j=0;j=0;i++,j++)//you由于判断式中j=0恒为假,故无法循环
j++;
return 0;
}
订正:

 #include<stdio.h>
 int main(void)
 {
     int i = 0;
     int j = 0;
     for (i = 0, j = 0; j == 0; i++, j++)//此处只循环一次
         j++;
     return 0;
 }

代码的优化:

#include<stdio.h>
int main(void)
{
int i = 1;
int n = 1;
int 阶层 = 1;
int sum = 0;
int j = 0;
printf("请输入一个数字:");
scanf_s("%d", &n);//使用了两个循环,效率不高
for (sum = 1; sum < n+1; sum++)
{
	阶层 = 1;
	for (i = 1; i < sum + 1; i++)
	{
		阶层 = 阶层 * i;
	}
	j=j+阶层;
}
printf("从1到%d的阶层之和=%d\n", n,j);
return 0;
}

优化:

#include<stdio.h>
int main(void)
{
int i = 1;
int n = 1;
int sum = 0;
int j = 0;
printf("请输入一个数字:");
scanf_s("%d", &n);
for (sum = 1; sum < n + 1; sum++)
{
	i =i*sum ;
	j = j + i;
}
printf("从1到%d的阶层之和=%d\n", n, j);
return 0;
}

do while循环

示例:

#include<stdio.h>
int main(void)
{
int i=1;
int n = 0;
printf("请输入具体整数:");
scanf_s("%d", &n);
printf("从1到%d中的偶数有:\n", n);
do
{
	if(i%2==0)
	printf("%d ", i);
	i++;
} 
while (i<=n);
return 0;
}

do之后若需要执行一条以上语句,需要使用花括号

标签:main,int,void,++,小白,循环,printf,眼里,include
来源: https://www.cnblogs.com/yebingfei1/p/15856502.html