C语言do……while(——j)与while(j——)区别?
#include
int GetAddifromj(int i,int j,int SelectWhile);
int main()
{
int i,j;
int Num = 0;
int SelectWhile;
printf("输入i和j
");
scanf("%d%d",&i,&j);
printf("输入非0选择while循环计算,否则选择do while计算
");
scanf("%d",&SelectWhile);
if (i>j)
{
Num = GetAddifromj(i,j,SelectWhile);
printf("结果是%d
",Num);
}
else
{
printf("i小于j");
}
return 0;
}
int GetAddifromj(int i,int j,int SelectWhile)
{
int Num = 0;
if (SelectWhile)
{
while(j<=i)
{
Num += j;
j++;
}
printf("你选择的是while循环
");
}
else
{
do{
Num += j;
j++;
}while(j<=i);
printf("你选择的是do while循环
");
}
return Num;
}
1、循环结构的表达式不同:
while循环结构的表达式为:while(表达式){循环体}。
do-while循环结构表达式为:do{循环体;}while(条件表达);。
2、执行末尾循环体的顺序不同
while循环的末尾循环体也是在中间循环体里,并在中间循环体中执行,循环体是否继续运行的条件也在循环体中。
do-while循环是在中间循环体中加入末尾循环体,并在执行中间循环体时执行末尾循环体,循环体是否继续运行的条件在末尾循环体里。
举例如下:
while(0)
{printf("执行循环体。");
}
do
{printf("执行循环体");
}while(0);
前者先判断一次条件是否满足,不满足所以不执行下面的循环体,循环体没有被执行;
后者先执行一次循环体,再判断条件是否满足,不满足所以不再执行循环体,循环体执行了一次。
这种区别只有在条件在第一次判断就为"0"(假)时才体现出来,若第一次条件判断为非"0"(真),则没有这种区别。
3、执行次数不同
while循环是先判断后执行,如果判断条件不成立可以不执行中间循环体。
do-while循环是先执行后判断,执行次数至少为一次,执行一次后判断条件是否成立,如果不成立跳出循环,成立则继续运行循环体。
4、执行时判断方式不同
while循环执行时只有当满足条件时才会进入循环,进入循环后,执行完循环体内全部语句至当条件不满足时,再跳出循环。
do-while循环将先运行一次,在经过第一次do循环后,执行完一次后检查条件表达式的值是否成立,其值为不成立时而会退出循环。
参考资料来源:
百度百科——while
百度百科——do while
先判断j的值是否等于0,然后再做减法:while ( j-- ),执行后即使j已经被减为0,但本次循环仍然进行。
请写出do-while循环体的执行次数。并写出分析过程
最终x再次经历两个自减,值变为-1,跳出do-whilie。因此一共执行3次do-while循环体
C语言编程1-2+3-4+5-6+~~+99-100用for,语句~while语句……do-whi
int s=0,i=1,j=1;do { s=s+i*j;j=-j;i++;}while(i<=100);printf("1-2+3-4+5-6+~~+99-100=%d",s);} 三个程序都运行过。它们的语句基本相同,请仔细看它们的不同之处。
...能,求面积,若不能则输出不能组成三角形,并用do…whi...
include<math.h> main(){ double a,b,c,p,area;do { printf("input a b c\\n");scanf("%lf %lf %lf",&a,&b,&c);p = (a+b+c) \/2.0;if ((p-a)>0 && (p-b) > 0 && (p-c) > 0){ area = sqrt(p*(p-a)*(p-b)*(p-c));break;} else printf("wrong a...
Do 是c语言合法标识符嘛?
do是C语言合法标识符;只写个do编译时会报错,因为它认为你少写个while()do和while连用构成 do {...}whiel(...);函数
分别使用while、do-while和for语句编程,找出所有的水仙花数并输出...
Whi le语句 public class numl { public static void main(String[] args) { int x, y, z, i=100, sum;while(i<1000)z=i%100%10;y=i\/10;y=y%10;x=i\/ 100;sum=x*x*x+y*y*y+z*z*z;if(sum==i)System. out. println(sum+”是水仙花数"); .i++;} } Do-whil e语句...
一个入门的c语言do whilie语句,一直提示出错,求解,跟教材对了好几片都...
int 1这个是什么意思?声明变量吗?变量命名规则:由字母或者数字组成,第一个字符必须是字母或者下划线
int x=3; do printf("%d\\n",x-=2); while(!(--x)); 须详细答案_百度知 ...
x=3 由于是DO_WHILE循环 所以先执行循环语句,x-=2后 x=1 所以第一个打印结果是1,然后进入判断!(--x)条件是否为真,由于此时X=1,--x结果为0,由于前面有! 所以while循环条件满足,再次进入循环体,此时x为0 执行x-=2之后输出结果为-2,再次进入循环判断,此时x值为-2,--x后为-3,...
...的循环不能用其他语句构成的循环代替 B。do whi
只有D正确。A.while和for语句都能替代 B.当while内表达式为假时也会退出 C.while内表达式非零即为真,会继续循环而非结束
VB算法与程序设计76中do whi循环与KN中1
K的起始值为1,由1到10要循环10次,所以,相应的M的值的原有的数据上加了10次的2,即2*10=20,再加M的起初值1,最后结果为21
C# do whilie 循环怎么用啊! 还有怎么使一段代码运行指定的次数?请高手...
int i = 0;do{需要执行的代码}while(i<10)
秦查美克: #include int main() { int i=0,j; do { i++; j=0; do { printf("*"); j++; }while(j printf("\n"); }while(i return 0; } 其实这种简单的编程最好自己先动手,不管多简单复杂动手最重要哦.
广德县18433882573: C语言中while语句和do while语句具体是如何循环的? - ?
秦查美克: while 是先判断后执行,如果第一次判断条件就为假,则一次都不执行. do-while 是先执行后判断,无论如何至少执行一次.while语句的格式: while(条件) { 循环体 }do-while语句的格式: do { 循环体 } while(条件);注意do-while语句最...
广德县18433882573: C语言中do while语句和while的区别 - ?
秦查美克: while 是先判断 while() { 语句;} 括号()里面的条件是否成立,成立则执行循环至条件不成立,停止进入下一语句.do while 是先 运行一次 do { 语句;}while() 中的 语句 在判断条件是否成立,成立则继续运行循环;前者如果条件不成立则...
广德县18433882573: c语言.用while,do - while循环求i~j的整数和(其中i>j),i,j由用户输入 - ?
秦查美克: 第一种: #include"stdio.h" void main() { int i,j; int sum,k; sum=0; printf("plz input i:\n"); scanf("%d",&i); printf("plz input j:\n"); scanf("%d",&j); k=j; while(k<=i) { sum+=k; k++; } printf("the sum of %d to %d is:%d\n",j,i,sum); } 第二种: ...
广德县18433882573: 怎样用C语言的do``while语句编乘法表?
秦查美克: 程序如下: #include <stdio.h> void main() { int i=1,j=1; do { j=1; do { printf("%d*%d=%d\t",i,j,i*j); j++; }while(j<=i); printf("\n"); i++; }while(i<=9); }
广德县18433882573: C语言编程计算机程序.循环部分用while或do - while实现 - ?
秦查美克: #includevoid main() { int i=1,j=0,k=10;//i是每次的自然数自增1,j是每次相乘后的结果统计,k是你想要输入的数字 printf("请输入一个数字"); scanf("%d",&k); do { j=j*i; i++; }while(i<=k); printf("%d\n",j); }
广德县18433882573: c语言 do wihle语言 - ?
秦查美克: 注意:J是静态变量,只在程序运行初期初始化一次,以后再不进行J=0的赋值了.循环K=1,调用FUN: J=0,S[J]+=S[J+1],即S[0]+=S[0+1],运算后S[0]=1+2=3, ++J,J=1,J J=1,S[J]+=S[J+1],即S[1]+=S[1+1],运算后S[1]=2+3=5, ++J,J=2,J循环K=2,调用FUN:(由于J是静态变量,会在再次调用函数时保持自己的值不变) J=2,S[J]+=S[J+1],即S[2]+=S[2+1],运算后S[2]=3+4=7, ++J,J=3,J循环K=3,K打印数组内容为:3 5 7 4 5
广德县18433882573: C语言中的”do while循环“是怎样一个流程?请高手详细描述下,谢谢 - ?
秦查美克: do { 循环语句L} while(表达式A); 首先执行一次循环体语句,然后开始测试循环条件表达式A,当条件为'真'时继续循环的处理过程.和while很类似,只是while语句先判断条件表达式而do while 是先执行循环体,后判断.自己用这两的语句编写几个相同循环程序基本就差不多了.
广德县18433882573: C语言中怎么用Y/N 对 do……while 进行判断 - ?
秦查美克: char c;//之前的定义.do{ /* ....执行语句块 ....*/ printf("do you want to continue?(y/n):\n");scanf("%c",&c);/*在这你可以加一个输入的判断,看是否是Y,N ,y,n其中之一.*/ }while(c=='y'||c=='Y');