C语言语法1详情请看这两篇博客:(此号为本人小号)
四则运算及基本语法
数据类型
接下来要讲得是循环语句
for循环
基本语法:
for(表达式1;表达式2;表达式3)
{
内嵌语句;
}
执行顺序:
①执行表达式1;
②执行表达式2,表达式2的结果一般为真或假。若为真,则执行内嵌语句,完毕后执行表达式3;否则退出循环。
③执行完表达式3后返回第②步继续执行,直到表达式2的结果为假(退出循环)。
❗❗❗注意:
①表达式1、2、3及内嵌语句都可以选择不填,若没填,则跳过相应步骤;
②记住for里面的三个语句间要用英文下的分号(;)间隔;
③表达式1是赋初值,表达式2是循环条件,表达式3是运算(一般是自增、自减、两个值间的某种关系)
举个栗子:
找最小值
代码:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[105];
int main()
{
int n;
cin>>n;
int minn=1001;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
if(a[i]<minn) minn=a[i];
}
cout<<minn;
return 0;
}
while
基本语法:
while(表达式(条件))
{
内嵌语句;
}
执行顺序:先判定表达式是否为真,若为真则继续执行内嵌语句,执行完后返回表达式继续判定是否为真,直到表达式为假才退出循环;若为假则退出循环。
小用法:while(1)表示永真式,即无限循环;while(0)表示永假式,即不会进行该循环。
对应for来说:for( ; ; )表示永真式,for(int i=0; i<0; )就表示永假式。(不一定是以上这两个式子,可以有其他表示方法,底层逻辑一样即可)
while和for的区别:一般来说,它俩除了语法上有些许区别外,就没啥区别了。
栗子依旧是上面那个,这个是用while来实现的
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[100];
int main()
{
int n;
cin>>n;
int minn=1001;
for(int i=0;i<n;i++)
cin>>a[i];
int i=0;
while(i<n)
{
if(a[i]<minn) minn=a[i];
i++;
}
cout<<minn;
return 0;
}
i为9时也就是最后一个元素,再自增就是10,条件为假退出循环。
do-while
基本语法:
do
{
内嵌语句;
}while(表达式);
执行顺序:先做内嵌语句再判定表达式是否为真,若为真则继续;否则退出循环。
do-while和while的区别:do-while是先执行内嵌语句再判条件,while是先判条件再执行内嵌语句。
栗子的do-while循环代码:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[105];
int main()
{
int n;
cin>>n;
int minn=1001;
for(int i=1; i<=n;i++)
cin>>a[i];
int i=0;
do
{
i++;
if(a[i]<minn) minn=a[i];
}while(i<n);
cout<<minn;
return 0;
}
假设n为10,当i为9时,还要再做一次内嵌语句,即i变为10,也就是最后一个语句,所以while循环的条件是i<n。
以上就是循环语句的全部芝士 知识,这三个循环在大多数情况下都能换着使用,哪个方便就用哪个,哪个习惯就用哪个,主要需要注意的是设立循环条件时要考虑是否取临界点。