精华内容
下载资源
问答
  • 文章目录 前言 一,while 循环 ...包括while循环,for循环,do...while循环详细讲解以及习题巩固练习 ____________________________________________________________________________ ...

    文章目录

    • 前言
    • 一,while 循环
    • 二,for   循环
    • 三,do  while 循环
    • 四,goto语句
    • 五,练习题巩固
    • 总结



    前言

    本篇内容主要记录 循环语句:

    包括while循环,for循环,do...while,goto循环详细讲解以及习题巩固练习

    ____________________________________________________________________________

                                                                         ****正文开始****

    一、while 循环

    在我们的日常生活中有很多实际的例子:

    同一件事情我们需要完成很多次。 那我们怎么做呢? C语言中给我们引入了: while 语句,可以实现循环。
    //while 语法结构
    while(表达式)
     循环语句;

    Q : 比如我们实现:在屏幕上打印1-10的数字。

    int main() {
    
    	int i = 0; // 初始化
    	while (i <= 10) {// 判断
    
    		printf("%d ", i);
    
    		i++;       //调整部分
    	}
    	return 0;
    }
    这段代码中已经足够清晰的反应了程序的执行过程。
    上面的代码已经帮我们了解了 while 语句的基本语法。
    那我们再了解一下:

    (一)while语句中的breakcontinue

    1>break在while循环中

    Q : 我们看这段代码,它的执行结果是什么呢?

    int main() {
    	int  i = 1;
    	while (i <= 10) {
    		if (5 == i)
    			break;
    	
    
    		printf("%d ", i);
    		i++;
    	}
    	return 0;
    }
    我们看代码运行结果:

    我们发现了break在while循环中的作用

    其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
    所以:while中的break是用于永久终止循环的。

    2>continue在while循环中

    Q : 我们看这段代码,它的执行结果是什么呢?

    int main() {
    	int  i = 1;
    	while (i <= 10) {
    		if (5 == i)
    			/*break;*/
    		continue;// continue 会跳过后面的语句
    
    		printf("%d ", i);
    		i++;
    	}
    	return 0;
    }

    我们看运行结果:

     Q : 我们再看这段代码,它的执行结果是什么呢?

    int main() {
    	int  i = 1;
    	while (i <= 10) {
    		i++;
    
    		if (5 == i)
    		
    		continue;// continue 会跳过后面的语句
    
    		printf("%d ", i);
    	
    	}
    	return 0;
    }

    我们看它的运行结果:

     我们能够发现:第一段代码运行到4之后,当i==5的时候发生了死循环。这是因为continue起了作用,我们就要提到continue 的作用了。

    continue在while循环中的作用就是:
    continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
    而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
    A : 因此第一段代码中当 i==5 的时候,走到continue时跳出了本次循环到了,但是这时候 i 还并没有i++,当下一次 i 进入循环的时候,i 的值还是5,再次continue,这就造成了死循环。
    同理:
    Q : 为什么第二段代码没有造成死循环呢?
    A : 其实我们只要自己观察分析代码会发现,在 if 判断之前 i++ 了一次;这就会导致当 i==5时,continue跳出本次循环时,在下一次进入循环的时候 i 并不是仍然是5,而是6(因为i++了一次),所以 if 判断为假,不会continue跳出循环,而且会打印 数字,因此这就是为什么第二段代码没有造成死循环,并且打印的结果中没有数字5。

     (二)getchar 详解

    Q : 我们在观察这段代码,他是什么意思?

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

    这里的代码适当的修改是可以用来清理缓冲区的.

    #include <stdio.h>
    int main()
    {
        char ch = '\0';
     while ((ch = getchar()) != EOF)
     {
         if (ch < ‘0’ || ch > ‘9’)
            continue;
         putchar(ch);
     }
     return 0; }

    这个代码的作用是:只打印数字字符,跳过其他字符的

    举例:  请观察这段代码?他会正常输出我们想要的结果吗?

    int main() {
    	char input[20] = { 0 };
    	printf("请输入密码:>");
    	scanf("%s", input); // abcdef
    	
    	getchar(); // 拿走 \n
    
    
    	printf("请输入密码(Y/N):>");
    	
    	int ch = getchar();
    	if (ch == 'Y') {
    		printf("确认成功\n");
    	}
    	else {
    		printf("确认失败\n");
    
    	}
    	return 0;
    }

    查看运行结果:

     我们发现如果连续的输入一段数字,程序会正常按照我们的意思输出,但是如果我们更改输入的方法,他还会正常吗?

    我们观看这样的输入方式:

     在这里我们输入的密码:123  456

    我们在123和456之间加入一个空格,我们发现这就导致了我们直接略过了判断密码是否争取的那一步,并且输出了确认失败,这是为什么呢?

    这是因为:

    我们从键盘输入: 123 456

    实际上是: 123 456\n

    读取字符串的时候,遇到空格就结束了,所以getchar只都读走了123

    缓冲区内部还有:_ (空格)456\n

    所以一个getchar并不能解决问题,应该使用一种方法将缓冲区的所有字符带走,这时候就可以运用while循环,具体代码如下:

    //清理缓冲区
    	int tmp = 0;
    	while ((tmp = getchar()) != '\n') {
    		;  //空语句
    	}
    

    通过清理缓冲区这时候就可以达到我们想要的结果:

    整体代码如下:

    int main() {
    	char input[20] = { 0 };
    	printf("请输入密码:>");
    	scanf("%s", input); // 123 456
    	 
    	//清理缓冲区
    	int tmp = 0;
    	while ((tmp = getchar()) != '\n') {
    		;  //空语句
    	}
    
    
    	printf("请输入密码(Y/N):>");
    
    	int ch = getchar();
    	if (ch == 'Y') {
    		printf("确认成功\n");
    	}
    	else {
    		printf("确认失败\n");
    
    	}
    	return 0;
    }

    我们再看 演示结果:

     我们发现解决了问题

    二,for   循环

    一:语法
    for(表达式1; 表达式2; 表达式3)
     循环语句;
    表达式1
    表达式1初始化部分,用于初始化循环变量的。
    表达式2
    表达式2条件判断部分,用于判断循环时候终止。
    表达式3
    表达式3调整部分,用于循环条件的调整。

    我们继续以实例的方式了解for循环语句:

    实际的问题:
    Q :使用for循环 在屏幕上打印1-10的数字。
    int main() {
    	int i = 0;
        //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
    	for (i = 1; i <= 10; i++){
    
    		printf("%d ", i);
    
    	}
    	return 0;
    }

    现在我们来对比一下while循环和for循环:

    int i = 0;
    //实现相同的功能,使用while
    i = 1;//初始化部分
    while (i <= 10)//判断部分
    {
    	printf("hehe\n");
    	i = i + 1;//调整部分
    }
    //实现相同的功能,使用while
    for (i = 1; i <= 10; i++) {
    	printf("hehe\n");
    }
    可以发现在while循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样查找修改就不够集中和方便。所以,for循环的风格更胜一筹;for循环使用的频率也最高。

    (一)breakcontinuefor循环中

    我们发现在 for 循环中也可以出现 break continue ,他们的意义和在 while 循环中是一样的。
    但是还是有些差异:

    1>break 在for循环中

    //代码1
    #include <stdio.h>
    int main()
    {
    	int i = 0;
    	for (i = 1; i <= 10; i++)
    	{
    		if (i == 5)
    			break;
    		printf("%d ", i);
    	}
    	return 0;
    }

    我们观察运行结果:

    我们观察到输出的结果为:1 2 3 4 

    这是因为: 当 i == 5 进入 if 判断当中时,直接跳出 for 循环 

    到达 return 0; 

    因此打印出 : 1 2 3 4(和while 循环类似)

    其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。

    2>continue 在for循环中

    #include <stdio.h>
    int main()
    {
    	int i = 0;
    	for (i = 1; i <= 10; i++)
    	{
    		if (i == 5)
    			continue;
    		printf("%d ", i);
    	}
    	return 0;
    }
    我们观察运行结果:

    我们观察到输出的结果是:1 2 3 4 6 7 8 9 10
    跳过了数字5,但是它并不是和while循环一样发生了死循环,这是因为for在执行的时候会有执行顺序,当表达式2成立进入循环时遇到continue跳出本次循环时,会接着执行表达式3,也就是调整部分,i 会 i++,这时候 i 会自增成6,在下一次进入循环时,不进入 if 判断。
    因此:
    我们从结果上就会得到:打印出1 2 3 4  6 7 8 9 10 跳过了数字 5 的打印。
    这就是continue在for循环中的作用
    建议:
       for (i = 0; i < 10; i++)  ----->建议写成前闭后开,10表示打印10次 提高可读性
     1. for  的舒适化,判断,调整三个部分都可以省略
     2. 中间的判断部分如果省略,意味着判断恒为真,就构成了死循环
     3. 如果条件允许,不建议省略for循环的3个表达式
    死循环举例:
    	for (;;) {
    
    		printf("hehe\n");// 死循环打印hehe
    	}

    我们再来看这段代码:

        int i = 0;
        int j = 0;
        for (i = 0; i < 3; i++){
            for (j = 0; j < 3; j++) {
                printf("hehe\n");
            }
        }

    我们看运行结果:

    我们发现这个程序打印了 9 行 hehe,这是因为当 i ==0 进入程序的时候 j 从0开始循环,当 j == 0 时, 打印一遍 hehe;当 j == 1 时, 打印第二遍 hehe ,d ;当 j == 2 ,打印第三遍 hehe;当 j ==3 不小于3的时候跳出 j 的循环 这时候 i++,此时 i == 1,同理,j 又从0开始打印 3遍hehe;i 再 i++;j 又打印3遍hehe,当 i==3 时 ,i < 3 不成立时,退出循环 ,这时候统计发现一共打印了9遍呵呵。

    但是,如果我们省略表达式一(初始化),打印的结果会完全不同。

    int main() {
    	int i = 0;
    	int j = 0;
    	for (; i < 3; i++) {
    		//  j = 3 没再初始化了
    		for (; j < 3; j++) {
    			printf("hehe\n"); // 打印3个hehe
    		}
    	}
    	return 0;
    }

    我们观察运行结果:

     这是因为当 i++ 增到 i==1 进入j 的循环时,j 并没有初始化,还是i=1时候的i++是3,不会再进入j 的循环,因此只会打印  i ==1 第 一 次的3 个hehe。
    总结:如果条件允许,不建议省略for循环的3个表达式
    我们再来看这一道题 : 
    //int main() {
    //	int i = 0;
    //	int k = 0; 
    //	         // k = 0  赋值0  结果是0  表示假 不进入循环
    //	for (i = 0, k = 0; k = 0; k++) {
    //		k++;
    //	}
    //	return 0;
    //}

    Q:问这段代码循环几次?

    A : 通过代码我们发现 for循环中的表达式2 是k = 0,‘=’是赋值符号,因此是将数字0赋值给k,我们知道在C语言中0表示假,因此表达式2 判断为假,根本不会进入for循环,因此这段代码循环0次。

    三,do  while 循环

    do 语句的语法:
    do
     循环语句;
    while(表达式);
    do语句的特点 :  循环至少执行一次,使用的场景有限,所以不是经常使用
    #include <stdio.h>
    int main()
    {
    	int i = 1;
    	do
    	{
    		printf("%d\n", i);
            i++;
    	} while (i < 10);
    	return 0;
    }
    

    这段代码是用while循环打印1-10。

    (一)do while循环中的breakcontinue

    1> break 在 do  while  循环中

    int main() {
    	int i = 1;
    	do {
    		if (i == 5)
    			break;//打印 1 2 3 4
    	
    		printf("%d ", i);
    		i++;
    	} while (i <= 10);
    
    	return 0;
    }

    道理同break在while和for循环中一样。

    2> continue 在 do  while  循环中

    int main() {
    	int i = 1;
    	do {
    		if (i == 5)
    			
    		   continue;// 1 2 3 4死循环
    		printf("%d ", i);
    		i++;
    	} while (i <= 10);
    
    	return 0;
    }

    运行结果:

     原因和while循环中的道里一致,因为continue是跳出本次循环,不会执行后面的i++,所以如果当i==5时就会一直死循环。

    这时候我们如果将i++放到continue之前结果为:

    int main() {
    	int i = 1;
    	do {
    		i++;
    		if (i == 5)
    			
    		   continue;// 1 2 3 4死循环
    		printf("%d ", i);
    	
    	} while (i <= 10);
    
    	return 0;
    }

     我们发现和while循环中的将i++的第二种可能性一直,道理相同。

    四,goto语句

    C 语言中提供了可以随意滥用的 goto 语句和标记跳转的标号。
    从理论上 goto 语句是没有必要的,实践中没有 goto 语句也可以很容易的写出代码。
    但是某些场合下 goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
    例如:一次跳出两层或多层循环。
    多层循环这种情况使用 break 是达不到目的的。它只能从最内层循环退出到上一层的循环。
    goto 语言真正适合的场景如下:
    // 多层循环这种情况使用break是达不到目的的,他只能从最内层循环退出上一层的循环
    // 这时候 goto语句适合这种场景
    for () {
    	for () {
    		for () {
    			if (disaster) {
    				goto error;
    			}
    		}
    	}
    }
    ...
    error:
    if(disaster)
    // 处理错误情况

    goto again 用法(标签一致就行,但标签必须在同一个函数内)

    int main() {
    
    again:
    	printf("hehe\n");
    	printf("haha\n");
    	goto again; // 标签一致就行,标签必须在同一个函数内
    
    	return 0;
    }

    结果演示: 

    会死循环打印hehe和haha.

    小游戏,小整蛊:

    //例如: 写一个关机程序
    //只要程序启动了,就倒计时60秒关机,如果60秒之内,输入:我是猪,就取消关机,如果不输入,时间到就关机
      
     shutdown   windows提供的关机命令
     shutdown -s -t 60秒之后关机
     shutdown -a 取消关机
    int main() {
    
    	char input[20] = { 0 };
    	system("shutdown -s -t 60");
    
    again:
    	printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,就取消关机\n");
    	scanf("%s", input);  //input本来就是地址 不用取地址
    	//判断
    	if (strcmp(input,"我是猪") == 0) {
    		// 取消关机
    		system("shutdown -a");
    	}
    	else {
    		goto again;
    	}
    
    	return 0;
     }

    五,练习题巩固

    1.计算n的阶乘

    int main() {
    
    	int n = 0;
    	scanf("%d", &n);// 5
    	int i = 0;
    	int ret = 1;
    	for (i = 1; i <= n; i++) {
    		ret *= i;
    	}
    	printf("%d\n",ret);
    	return 0;
    }

     2.计算 1!+2!+3!+4!+.....n!

    int main() {
    	int n = 0;//共n个数字
    	scanf("%d", &n);
    	int i = 0;// j  内部的第 i 个数字
    	int j = 0;// n  内部的第 j 个数字
    	int sum = 0;
    
    	for (j = 1; j <= n; j++) {// 
    		int ret = 1;
    		for (i = 1; i <= j; i++) {
    			ret *= i;
    		}
    		sum += ret;
    	}
    	printf("%d\n", sum);
    	return 0;
    }

    当然这道题我们还有优化算法:

    int main() {
    	int n = 0;
    	int i = 0;
    	int ret = 1;
    	int sum = 0;
    	for (n = 1; n <= 10; n++) {
    		ret = ret * n;
    		sum += ret;
    	}
    	printf("%d\n", sum);
    	return 0;
    }

    3.在一个有序数组中查找具体的某个数字n(二分查找)

    这个是普通求法:

    int main() {
    	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    	int k = 7;
    	int i = 0;
    	for (i = 0; i < 10; i++) {
    		if (arr[i] == k) {
    			printf("找到了,下标是%d\n", i);
    			break;
    		}
    		else if (i == 10) {
    			printf("找不到\n");
    		}
    	}
    	return 0;
    }

    我们发现,如果说这个数组中定义了100甚至更多的数字时,这样的算法就会耗时耗力,因为有一种更简便的算法:

    二分法 -- 折半查找

    int main() {
    	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    	int sz = sizeof(arr) / sizeof(arr[0]);
    	 //         40       /    4  = 10
    	int k = 7;
    	int left = 0;
    	int right = sz - 1;
    
    
    	while (left <= right) {
    		int mid = (left + right) / 2;
    		if (arr[mid] < k) {
    			left = mid + 1;
    		}
    		else if (arr[mid] > k) {
    			right = mid - 1;
    		}
    		else {
    			printf("找到了,下标是%d \n", mid);
    			break;
    		}
    	}
    	if (left > right) {
    		printf("找不到\n");
    	}
    	return 0;
    }

      4:反向打印一个数字

    int main() {
    	int n = 0;
    	scanf("%d", &n);
    	while (n!=0) {
    		printf("%d", n % 10);
    		n = n / 10;
    	}
    	return 0;
    }
    

                                                                       ****正文结束****

    ———————————————————————————————————————————








    总结

    本篇文章的内容就记录完毕,由于本人技术水平有限,若各位读者发现错误,欢迎及时纠正。

    展开全文
  • C语言的初学者提供<循环语句>的例题与应用

    例题1.3:

    求N(例如100)以内自然数的和,并输出结果。

    【分析】
    该问题可以用等差数列求和公式,也可用(for,while,do…while循环累加),对这个例题还可加以修改,用(函数递归)的方法进行累加,实现倒序累加。

    源码:

    #include<stdio.h>
    
    int plus(N);
    
    int main()
    {
    	int i = 1,sum = 0,N;
    	printf("Please enter N number :\n");
    	scanf("%d",&N);
    /*	while(i <= N)
    	{
    		sum = sum + i;
    		i++;
    	}*/
    	sum=plus(N);
    	printf("Sum.of integers 1-%d: %d\n",N,sum);
    	return 0;
    } 
    
    int plus(N)
    {
    	if(N == 1)
    	{
    		return 1;
    	}
    	else
    	{
    		return plus(N-1) + N;
    	}
    }
    
    

    测试1:
    在这里插入图片描述
    测试2:
    在这里插入图片描述

    相仿例题1.3:

    本题要求编写程序,计算交错序列 1- 2 3 \frac{2}{3} 32+ 3 5 \frac{3}{5} 53- 4 7 \frac{4}{7} 74+ 5 9 \frac{5}{9} 95- 6 11 \frac{6}{11} 116+… 的前N项之和,结果保留三位小数

    【分析】
    通过观察交错序列,可以发现分子都为(1,2,3…N)的等差数列,分母呈(1,3,5,7,9…2N-1)的等差数列。同时,每个分式的符号呈(1,-1,1…)的等比数列,公比为-1。

    源码:

    #include<stdio.h>
    
    int main()
    {    
    	int m = 1,N,b = 1;    
    	double sum = 0; 
    	double temp ,i;
    	printf("Please enter N:\n");
    	scanf("%d", &N);    
    	for(i = 1.0; i <= N; i++)    
    	{        
    		temp = b * (i/m);		//在i/m中必须保证有一边是小数
    		sum += temp;        
    		b = -b;        
    		m += 2;    
    	}
    	printf("%.3f \n", sum);         
    	return 0 ; 
    }
     
    

    注意
    在做题过程中注意浮点型的值,特别是在i/m中必须保证有一边是小数,否则在输出结果时系统会四舍五入。

    测试1:
    在这里插入图片描述
    测试2:
    在这里插入图片描述

    例题1.6

    用C编程输出一个九九乘法表。

    【分析】
    本例题只需要运用镶套(for循环)语句即可达到目的

    源码:

    #include<stdio.h>
    int main()
    {
    	printf("		Multiplication Table	\n");
    	int i, j;
    	for(i = 1;i <= 9; i++)
    	{
    		for(j = 1; j <= i; j++)
    		{
    			printf("%d*%d=%d \t",i,j,i*j);
    		}
    		printf("\n");
    	}
    } 
    
    /*
    int main()
    {
    	printf("		Multiplication Table	\n");
    	for(int i = 1;i <= 9; ++i)
    	{
    		for(int j = 1;j < i; ++j)
    		{
    			printf("\t");
    		}
    		for(int j = i;j <= 9; ++j)
    		{
    			printf("%d \t", i*j); 
    		}
    		printf("\n");
    	}
    }*/
     
    

    输出如下:

    在这里插入图片描述

    相仿例题1.6:

    请使用嵌套语句输出金字塔形状与平行四边形形状。

    【分析】
    用嵌套语句输出金字塔形状与平行四边形形状,要考虑3点:

    1. 首先要控制输出三角形与平行四边形的行数,
    2. 其次控制三角形与平行四边形的空白位置,
    3. 最后是将其显示。

    源码:

    #include<stdio.h>
    
    int addone();
    
    int addone()
    {
    	int i ,j ,k ,a;
    	printf("please enter triangle line : \n");
    	scanf("%d" ,&a);
    	for(i = 1;i <= a ;i++)
    	{
    		for(j = 1;j <= a-i ;j++)
    		{
    			printf(" ");
    		}
    		for(k =1;k <= 2*i-1 ;k++)       //如果把 i 改为 a 则为平行四边形 
    		{
    			printf("*");
    		}
    		printf("\n");
    	}
    }
    
    int main()
    {
    	int i ,m ,s ,b;
    	printf("please enter parallelogram line : \n");
    	scanf("%d" ,&i);
    	for(m = 1 ;m <= i ;m++)
    	{
    		for(s=1 ;s <= i-m ;s++)
    		{
    			printf(" ");
    		}
    		for(b = 1 ;b <= 2*i-1 ;b++)          //important
    		{
    			printf("*");
    		}
    		printf("\n");
    	}
    	printf("\n");
    	addone();
    	return 0;
    }
     
    

    测试1:
    在这里插入图片描述
    测试2:
    在这里插入图片描述

    展开全文
  • for和do-while循环语句经典例题

    千次阅读 2020-09-26 16:32:43
    1、用do-while语句编程,求自然数1~100之和。 #include<iostream> using namespace std; void main() { int i=1,s=0; do{ s=s+i; i++; } while(i<=100); cout<<"s="<<s<<end; } ...

    do-while: do-while循环将先运行一次,因为经过第一次do循环后,当检查条件表达式的值时,其值为 不成立时而会退出循环。保证了至少执行do{ }内的语句一次。

    for: for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值。 “;”号之间的条件表达式是一个关系表达式,当条件表达式成立时,执行中间循环体。执行的中间循环体可以为一个语句,也可以为多个语句,执行完中间循环体后接着执行末尾循环体。执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环

    1.用do-while语句编程,求自然数1~100之和。

    #include<iostream>
    using namespace std;
    void main()
    {
           int i=1,s=0;
           do{
               s=s+i;
               i++;
              }
           while(i<=100);
                  cout<<"s="<<s<<end;
     }
    

    输出:s=5050

    2.用for语句,求自然数1~100之和。

    #include<iostream>using 
    namespace std;
    void main()
    {	
    int i,s=0;	
    for(i=1;i<=100;i++)	
    {s=s+i;}	
    cout<<"s="<<s<<endl;
    }

    输出:s=5050

    3.用do-while语句编程,求表达式1-2+3-4…+99-100的值

    #include<iostream>
    using namespace std;
    void main()
    {	
    int i,s=0,t=0,n;	
    for(i=0;i<=100;i++)	
     {		
      if(i%2==0)         
        s=i+s;		
      else 		
       t=t+i;	
      }         
        n=t-s;	
        cout<<"n="<<n<<endl;
    }

    输出:-50

    4.编程计算图形的面积。

    #include <iostream>
    using namespace std;
    const float PI = 3.1416;
    void main(){	
    int i;	
    float r,a,b,area;	
    cout << "图形的类型为?(1-圆形 2-长方形 3-正方形):";
    cin >> i;	
    switch(i)	
    {	
    case 1:		
    	cout<<"圆的半径为:";		
    	cin>>r;		
    	area=PI*r*r;		
    	cout<<"面积为:"<<area<<endl;		
    	break;	
    case 2:		
    	cout<<"矩形的长为:";		
    	cin>>a;		
    	cout<<"矩形的宽为:";		
    	cin>>b;		
    	area=a*b;	  
    	 cout<<"面积为:"<<area<<endl;		
    	 break;
    case 3:		
    	 cout<<"正方形的边长为:";		
    	 cin>>a;		
    	 area=a*a;    
    	 cout<<"面积为:"<<area<<endl;
    	 break;	}
    }

    结果:图形的类型为?(1-圆形 2-长方形 3-正方形):1
    圆的半径为:3
    面积为:28.2744

    展开全文
  • C语言设计之循环语句例题

    千次阅读 2020-05-28 20:07:23
    1.while语句属于当型循环,用于循环次数未知,条件控制的循环。while循环的一般形式为: while(表达式) { 循环体语句 } 2.for语句用于实现当型循环控制结构。在循环顶部进行循环条件测试,如果循环条件第一次...

    循环语句是在C语言经常遇到的一种控制语句。在实际应用中的许多问题,都会涉及重复执行一些操作,如级数求和、穷举或迭代求解等。
    C语言提供for、while、do-while三种循环语句来实现循环结构。
    1.while语句属于当型循环,用于循环次数未知,条件控制的循环。while循环的一般形式为:
    while(表达式)

    循环体语句

    2.for语句用于实现当型循环控制结构。在循环顶部进行循环条件测试,如果循环条件第一次测试为假,则循环体一次也不执行。for循环的一般形式为:
    for(表达式1;表达式2;表达式3)

    循环体语句

    3.do-while语句用于实现直到型循环控制结构。在循环底部进行循环条件测试,循环至少执行一次。do-while循环的一般形式为:
    do{
    循环体语句
    }while(表达式);
    另外再本章学习中还学习到了“流程的转移控制”学习了三个语句,分别是goto语句;break语句;continue语句。这三种语句中break语句使用的比较多。举一个例子来看一下:
    韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗?
    1.使用基本的for循环(穷举法)
    #include <stdio.h>
    int main()
    {
    int x;
    for (x=1; x < 5000 ;x++)
    {
    if (x%51 && x%65 && x%74 && x%1110)
    {
    printf(“x = %d\n”, x); }
    }
    }
    2.使用break语句
    int main()
    {
    int x;
    for (x=1; ;x++)
    {
    if (x%51 && x%65 && x%74 && x%1110)
    {
    printf(“x = %d\n”, x);
    break;
    }
    }
    }
    我个人觉得在实际做题练习中,单独用到一个循环语句的时候并不多,大多数都是使用多个循环语句,即循环嵌套语句。所谓的循环嵌套语句通俗意义上讲就是循环里面套循环。
    现在来句几个比较简单的嵌套循环的例子:
    1.打印九九乘法口诀表
    #include
    int main()
    {
    int i = 0;
    int j = 0;
    for (i = 1; i <= 9; i++)
    {
    for (j = 1; j <= i; j++)
    {
    printf("%d*%d=%d “, i, j, i*j);
    if (i == j)
    printf(”\n");
    }
    }
    return 0;
    }
    2.输入一个数判断是否为素数。素数是只能被一和自身整除的数。
    #include
    #include
    using namespace std;
    int main()
    {
    int i,j,k;
    bool prime;
    char c=‘Y’;
    while(c==‘Y’)
    {
    cout<<“请输入一个整数:”;
    cin>>i;
    k=int(sqrt(i));
    prime=true;
    for(j=2;j<=k;j++)
    {
    if(i%j==0)
    {
    prime=false;
    cout<<“不是”<<endl;
    break;
    }

    }
    if(prime)

    {
    cout<<“是”<<endl;

    }
    cout<<“是否继续判断,输入Y继续,输入其他字符,退出程序:”;
    cin>>c;
    }
    cout<<“退出程序!”<<endl;
    return 0;
    }
    这几个例子就充分体现了循环嵌套的应用。
    总结:
    我认为循环语句是学习c语言的一个重要基础,因为后面在学习其他复杂的结构时,几乎都会涉及到循环语句。所以以后还要继续加强训练。

    展开全文
  • if练习 判断一个数是否为奇数 int num; printf("输入一个数:"); scanf("%d", &num); if (0 == num % 2) // 判断这个数除以 2 的余数 printf("%d 是偶数。", num);... while (i <= 100) {
  • do-while语句 用for语句 二、 goto语句 goto语句是一种无条件转移的语句,与BASIC种的goto语句相似。goto语句的使用格式为: goto 语句标号; 其中标号是一个有效的标识,这个标识链加上一个冒
  • c语言100道经典例题详解

    万次阅读 多人点赞 2019-03-04 20:31:22
    c语言100道经典例题 ** 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件...
  • do while循环语句的学习以及练习

    万次阅读 2019-04-23 20:53:40
    do while语句先执行循环体,满足条件在执行 语法: do { 循环体 }while(条件) 练习:输入一个英文字母,如果这个字母等于Q时,则执行结束,如果不等Q则继续循环, 写法: Console.WriteLine(“请输入一个字...
  • C语言循环经典例题

    千次阅读 多人点赞 2020-07-26 17:14:53
    } C语言经典例题 前50个素数 for循环 #include int main() { int x; int cnt = 0; for ( x=2; cnt; x++) { int i; int isprime = 1; for ( i=2; i;i++) { if ( x % i ==0){ isprime = 0; break; } } if ( isprime =...
  • 下面的程序中的do_while循环在运行时只能输入一次,第二次循环时会跳过,请问这是什么原因?? #include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <time.h> #include ...
  • 1.“\0”是结束语的结束标志。 注意:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0的结束标志,但是不算作字符串内容。 例如: char arr1[] = {’a’,’b’,’...while语句特点:先判断后执...
  • 注意:与while不同的是dowhile语句会先执行一次循环语句,再判断循环条件 示例: #include<iostream> using namespace std; int main() { //do...while语句 //在屏幕中输出0~9这十个数字 int num = 0...
  • do_while循环练习

    2017-07-27 07:17:47
    实现菜单切换:如果用户输入错误,可以重复输入,知道输入正确,执行相应的操作后退出循环
  • C语言 break语句

    千次阅读 多人点赞 2018-10-10 15:32:33
    循环语句一般是for循环,while循环,do-while循环。当break语句用于这些循环语句中,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句连在一起,即满足条件时便跳出循环。 下面演示见例子接招看题...
  • C语言学习——if、swich、while和for的用法 顺序结构程序不能满足实际...C 语言提供了if~else 语句实现条件选择结构,switch~case 语句实现等值选择结构,whiledowhile 和for语句实现重复执行循环体。 一、i...
  • 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们最不易做到的,然而却又...
  • do while循环案例

    千次阅读 2020-04-10 09:11:44
    do while循环案例 // 1. 打印人的一生,从1岁到100岁 var i = 1; do { console.log('这个人今年' + i + '岁了'); i++; } while (i <= 100) // 2. 计算 1 ~ 100 之间所有整...
  • 今天主要给大家讲的就是各种语句,包括选择语句和循环语句。 二、重点知识介绍 1、作用域 作用域,顾名思义,就是变量能作用的范围。比如古代的将领,兵马大元帅能够统领所有士兵,下面的一个先锋只能管自己手...
  • C语言】循环语句

    千次阅读 2019-09-24 10:46:57
    while、for、do while三种形式,例题:二分查找
  • #includeint main(){int i=1,sum=0;do{sum=sum+i;i++;}while(i);printf("sum=%d\n",sum);return 0;}
  • do { 25 var bool = confirm("求求你啦,嫁给我吧,我很丑,但是我很温柔啊..." ); 26 if (bool){ 27 alert("我们去三亚拍结婚照吧,现在才3折优惠啊!" ); 28 break ; 29 } 30 // 如果点击的是...
  • C语言第十篇:循环语句练习

    万次阅读 多人点赞 2016-03-26 17:04:15
    3、do-while循环代码 #include int main() { int i=0,sum=0; do { sum=sum+i; i+=2; }while(i); printf("%d",sum); return 0; } 运行结果 二、求阶乘 题目...
  • 宏程序的概念与基本特征:简单的说含有变量的程序就是宏程序,基可本特征即带有变量,可变的赋值,程序的灵活性(跳转,调用,逻辑运算)。...例如:顺序为1--2--3HWJ@wen文健【转移与循环语句】【1】无条件转移指...
  • 初学C语言的朋友应该首先了解C语言关键的核心概念(结构化、三个执行流程、优先级、指针、文件、共用体、函数、作用域、重载等 ),只有弄明白了这些才能在今后的学习中游刃有余的把握C语言的精髓。这几个概念就像逻辑...
  • 我们说 C语言是结构化程序语言 , 它的结构化体现在它有三大结构 :顺序 选择 和循环 什么是语句语句:有一个分号 ; 隔开的就是一条语句
  • 2、do-while 语句 1)语法规则 除了 while 循环,在 C语言 中还有一种 do-while 循环。 do-while 的一般形式为: do{ 语句块 }while(表达式);   do-while 循环与 while 循环的区别在于:它会先执行 语句块,然后...
  • 1.for2.while3.do while4.goto二、辅助控制语句 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习...
  • 这里写自定义目录标题C语言中,在学习do while循环结构的时候可能会遇到的问题关于do while代码加注释解释功能 C语言中,在学习do while循环结构的时候可能会遇到的问题 hi,你好,这是小编在第一次学习c语言do ...
  • C语言经典例题整理

    千次阅读 多人点赞 2020-04-05 14:53:43
    switch((int)(score/10)){ case 10: //注意switch case语句使用,case仅能常量 case 9:result='A';break; case 8:result='B';break; case 7:result='C';break; case 6:result='D';break; default:result='E'; } ...
  • 对于 whiledowhile 循环,continue 语句 重新执行条件判断语句。 语法 C 语言中 continue 语句的语法: 代码块1... continue; 代码块2... 实现源码:跳过指定数字15继续执行 #include <stdio.h

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,433
精华内容 573
关键字:

c语言dowhile语句例题

c语言 订阅