20.while循环

while

  1.执行顺序

    格式:

      while (表达式)

          语句;

  2.与for的相互比较

      for和while可以相互转换

        for (1; 2; 3)

          A;

      等价于

        1;

        while (2)

        {

          A;

          3;

        }

      while 和 for 可以相互转化

      但for的逻辑性更强,更不容易出错,推荐使用for

  3.举例

    从键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no

    注:回文数就是正着写和倒着写一样。例如1221、12321都是回文数。

 1 /*
 2     2015年4月1日 16:37:44
 3     目的:从键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no
 4
 5
 6 */
 7
 8 # include <stdio.h>
 9
10 int main(void)
11 {
12     int val; //存放待判断的数字
13     int m;
14     int sum = 0;
15
16     printf("请输入您需要判断的数字:");
17     scanf("%d", &val);
18
19     m = val;
20     while (m) //m的值只要非零,就为真,执行循环体
21     {
22         sum = sum*10 + m%10;
23         m /= 10;
24     }
25
26     if (sum == val)
27         printf("Yes!\n");
28     else
29         printf("No!\n");
30
31     return 0;
32
33 }
34 /*
35     在VC6.0中运行结果是:
36 -----------------------------
37 请输入您需要判断的数字:12321
38 Yes!
39 -----------------------------
40     总结:分析,以输入1234为例:
41         1>    m=1234    循环条件成立
42             sum=0*10+1234%10=4
43             m=m/10 = 123
44         2>    m=123 循环条件成立
45             sum=4*10+123%10=43
46             m=123/10=12
47         3>    m=12 循环条件成立
48             sum=43*10+12%10=432
49             m=12/10=1
50         4>    m=1 循环条件成立
51             sum=432*10+1%10=4321
52             m=1/10=0
53         5>    m=0 循环条件不成立
54
55         最终 sum = 4321
56         1234不是回文数
57
58
59
60
61 */

  4.什么时候使用while,什么时候使用for

时间: 2024-10-27 12:44:43

20.while循环的相关文章

循环单链表,解决约瑟夫问题

约瑟夫问题: 编号为1~N的N个人按顺时针方向围坐一圈,每人持有一个密码(正整数),开始任选一个正整数作为报数上限值M,从第1个人按顺时针方向自1开始顺序报数,报到M时停止报数.报M的人出列,将他的密码作为新的M值,从他顺时针方向上的下一个人开始从1报数,如此下去,直至所有人全部出列为止. 解析: 显然当有人退出圆圈后,报数的工作要从下一个人开始继续,而剩下的人仍然围成一个圆圈,因此可以使用循环单链表.退出圆圈的工作对应着表中节点的删除操作,对于这种删除操作频繁的情况,选用效率较高的链表结构,为

数据结构--顺序循环队列和链式队列

第一部分:顺序循环队列的实现 1 //循环队列的实现 2 #define OK 1 3 #define MAXSIZE_Q 10 4 //#define OVERFLOW -2 5 #define ERROR 0 6 7 typedef int Status; 8 typedef int QElemtype; 9 10 typedef struct{ 11 QElemtype *base; //初始化的动态分配存储空间 12 int front; //队头指针 13 int rear; //队尾

一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

public class FractionAdd { public static void main(String[] args) { double sum = 0; double n1 = 1, n2 = 2, sn = 0;// 经分析,分子分母都为斐波那契数列 for (int i = 1; i <= 20; i++) {// 数列前20项,循环20次 sum += n2 / n1; sn = n1 + n2; n1 = n2; n2 = sn; } System.out.println(

oracle pl/sql中的循环及if语句

for循环 1 /* 2 for循环打印1到10 3 */ 4 5 set serveroutput on; 6 7 declare 8 9 begin 10 for i in 1..10 loop 11 dbms_output.put_line(i); 12 13 end loop; 14 15 end; 16 / while循环 1 /* 2 打印数字1 ~ 10 3 */ 4 5 set serveroutput on; 6 7 declare 8 9 num number := 1; 1

特殊的清明--------我学习了循环语句

1.在这个特殊的日子里(清明节),我坐在教室里学习java循环语句. package cn.class05; import java.util.Scanner; public class Class { public static void main(String[] args) { /* * 学习最基本的while循环语句 */ System.out.print("请输入今天是周几?"); Scanner input=new Scanner(System.in); String we

Swift(上) 常量, 变量, 数据类型, 循环, 选择结构 简单函数

本篇内容是在XCode的Playground下编写的 那么什么是Playground呢? 提到Playground我们就不得不提Swift这个最近苹果公司力推的语言, Swift是苹果公司在WWDC2014上发布的全新开发语言.从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,并可与OC混合使用. Xcode 6 对 Swift 有着全面深入的支持.你可以利用 100% Swift 代码创建全新的 app,或者将新的 Swift 代

JavaScript里的循环方法:forEach,for-in,for-of

JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) {  console.log(myArray[index]); } 自从JavaScript5起,我们开始可以使用内置的forEach方法: myArray.forEach(function (value) {  console.log(value); }); 写法简单了许多,但也有短处:你不能中断循环

JavaScript里的循环方法之forEach,for-in,for-of

JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) { console.log(m

flex for循环

一:for var i:int; for (i = 0; i < 5; i++) { trace(i); } 二:for ...in 循环object: var myObj:Object = {x:20, y:30}; for (var i:String in myObj) { trace(i + ": " + myObj[i]); } // output: // x: 20 // y: 30 循环array: var myArray:Array = ["one&quo