精华内容
下载资源
问答
  • N个for改成while的方法

    千次阅读 2015-06-08 15:39:00
    下面我们对上述代码进行修改,用while代替N个for循环。 void telephone_number_word1(int answer[],int number[]) { while (1) { for (int i=0;i;i++) { cout[number[i]][answer[i]]; } cout; int ...
    问题如下:手机上面的数字键均对应了几个字符,譬如2对应了a,b,c。问题是当输入一段数字后,求出所有可能的字符组合,(可以想象一下发短信时候的状况,每当按几个数字键后,均给出可能的汉语拼音,当然这个要求就更高了,本题只要求给出所有可能的组合)。
    举个例子输入4,2键后,则给出GA,GB,GC,HA,HB,HC,IA,IB,IC组合。

    当然对于大多数人来说就是几层循环就搞定了,每层遍历,内部输出。若是2位电话号码,用两个for循环就可以解决问题。

    代码如下:

    #include <iostream>
    using namespace std;
    #define			TELLENGTH 2//电话号码的位数
    char c[10][10]=
    {
    	"",
    	"",
    	"ABC",
    	"DEF",
    	"GHI",
    	"JKL",
    	"MNO",
    	"PQRS",
    	"TUV",
    	"WXYZ",
    };
    int total[10]={0,0,3,3,3,3,3,4,3,4};//每一个位数表示的字母数
    void  telephone_number_word(int answer[],int number[]);
    void  telephone_number_word1(int answer[],int number[]);
    void main()
    {
    	int answer[TELLENGTH]={0};//电话号码所对应的字符集中的位置
    	int number[TELLENGTH]={4,2};//两位电话号码,第一位为4.第二位为2
    	telephone_number_word(answer, number);
    }
    void  telephone_number_word(int answer[],int number[])
    {
    	for (answer[0]=0;answer[0]<total[number[0]];answer[0]++)
    	{
    		for (answer[1]=0;answer[1]<total[number[1]];answer[1]++)
    		{
    			for (int i=0;i<TELLENGTH;i++)
    			{
    				cout<<c[number[i]][answer[i]]<<" ";
    			}
    			cout<<endl;
    		}
    	}
    }
    
    但是不同地区的电话号码位数不同,当电话号码位数升级了,我们就要修改源代码增加若干个for循环,这是一件痛苦的事情。下面我们对上述代码进行修改,用while代替N个for循环。

    void  telephone_number_word1(int answer[],int number[])
    {
    	while (1)
    	{
    		for (int i=0;i<TELLENGTH;i++)
    		{
    			cout<<c[number[i]][answer[i]];
    		}
    		cout<<endl;
    		int k=TELLENGTH-1;
    		while (k>=0)
    		{
    			if (answer[k]<total[number[k]]-1)//更新第二个数字表示的不同字符位置
    			{
    				answer[k]++;
    				break;
    			}
    			else
    			{
    				answer[k]=0;
    				k--;
    			}
    		}
    		if (k<0)
    		{
    			break;
    		}
    	}
    }



    展开全文
  • forwhile、do while间转换

    千次阅读 2017-01-06 20:50:30
    以求1~100的整数和为例; //for循环:  #include int main() {  int i,sum=0;  for(i=1; i  {  sum+=i;  }  printf("%d",sum);  return 0; } while循环:  #include int main

                  以求1~100的整数和为例;


    //for循环:

       #include<stdio.h>
    int main()
    {
        int i,sum=0;
        for(i=1; i<=100; i++)
        {
            sum+=i;
        }
        printf("%d",sum);

        return 0;
    }


    while循环:

       #include<stdio.h>
    int main()
    {
        int i=1,sum=0;
        while(i<=100)
        {
            sum+=i;
            i++;
        }
        printf("%d",sum);
        return 0;
    }

    do while循环:

     #include<stdio.h>
    int main()
    {
        int i=1,sum=0;
        do
        {
            sum+=i;
            i++;
        }

        while(i<=100);

        printf("%d",sum);
        return 0;
    }

    //(do while循环体至少执行一次)

    展开全文
  • forwhile如何相互转换

    千次阅读 2020-02-13 15:57:47
    forwhile相互转换 博主网站:https://blog.zhenglin.work 先看段代码: for (int i = 1; i <10 ; i++) { for (int j = 1; j <= i ; j++) { System.out.print(j+"\t"); } System.out.println(); } Syst...

    for和while相互转换

    博主网站:https://blog.zhenglin.work

    • 先看段代码:
    for (int i = 1; i <10 ; i++) {
        for (int j = 1; j <= i ; j++) {
            System.out.print(j+"\t");
        }
        System.out.println();
    }
    System.out.println("-------->");
    //转换成while循环
    int k = 1;
    while (k < 10){
        int n =1;
        while (n <= k){
            System.out.print(n+"\t");
            n++;
        }
        System.out.println();
        k++;
    }
    

    上面代码效果一样,都是输出(乘法口诀外层):

    1	
    1	2	
    1	2	3	
    1	2	3	4	
    1	2	3	4	5	
    1	2	3	4	5	6	
    1	2	3	4	5	6	7	
    1	2	3	4	5	6	7	8	
    1	2	3	4	5	6	7	8	9
    

    for循环的格式是:for([初始化];[判断条件];[条件改变方式]){循环体} 其中()里面除了两个引号,其他不是非必须的 while更简单就括号里面判断条件;互相转换规律时,把for循环里面初始化写到外面,while括号里面只写判断语句,条件改变方式写到while循环体中,这样就可以达到for循环的效果;

    int k = 1;
    while (k < 10){
        int n =1;
        while (n <= k){
            System.out.print(n+"\t");
            n++;
        }
        System.out.println();
        k++;
    }
    

    但while循环语句更容易控制,只需验证括号里面布尔表达式是否成立就行,至于判断条件的变化,可以放到循环体里面来实现,并能灵活的加上限制条件(if),如实现 打印如下形状的数据,用while循环更合适;

    1	
    2	3	
    4	5	6	
    7	8	9	10	
    11	12	13	14	15	
    
    • 这种漏斗形式的数据,先总结规律,再来代码实现;上面形式数据特点是:每一行的元素个数和行号一样多; 那就说明当前行和当前列是一样多的,换句话说:当前行 最后一列位置和下一行 行号是一样的,让当前行 最后一列位置用换行符占着。
    • 思路有了,代码就好实现;需要三个变量来实现上面功能,一个供输出的变量index,一个行变量line,一个列变量column;当前行最后一列 和下一行行号相等的话,此列输出换号符;并让列重1开始,行号+1;继续打印i,然后列号+1;循环判断行号列的关系,一旦相等 就在此列位置输出换行符; 但要排除一种情况,就是行和列 都是1时,如果此时也输出换号的话,相等于第一行 第一列是个换行符 ;而1打印到第二行了。
    • 代码实现:
    int line = 1;
    int column = 1;
    int index = 1;
    while (index<=15){
        if (line == column) {
            if (index != 1) {
                System.out.println();
            }
            column=1;
            line++;
        }
        System.out.print(index+"\t");
        index++;
        column++;
    }
    

    如果打印一个倒三角,更简单因为line和column起始值不同,不用做index != xx,这种判断;这里面是避免第一行是打印的是一个空行。

    @Test
    public void showNum(){
        int line = 11, column = 1,index=55;
        while (index>0){
            if(line == column){
                System.out.println();
                line--;
                column = 1;
            }
            System.out.print(index+" ");
            index--;
            column++;
        }
    }
    

    while 布尔表达式的灵活性还有用变量来表示,如 boolean flag = true; while(flag){循环体},在循环体中,出现某种情况让flag值变为false,即可实现中断循环的功能;或者更简单,出现符合条件后用break跳出即可。另外不管是何种循环控制器 都可以用break或continue。

    展开全文
  • for循环和while循环的相互转换

    千次阅读 2019-07-22 18:00:19
    for循环和while循环都是我们能经常用到的方法。 for循环的格式为: for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句; } while循环的格式为: while(条件表达式){ 执行语句; } 然而这两种循环是...

    for循环和while循环都是我们能经常用到的方法。
    for循环的格式为:
    for(初始化表达式;循环条件表达式;循环后的操作表达式){
    执行语句;
    }
    while循环的格式为:
    while(条件表达式){
    执行语句;
    }
    然而这两种循环是可以相互转换的eg:
    下面分别时while和for的死循环格式
    在这里插入图片描述在这里插入图片描述
    再例如:
    while程序:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    for程序:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    可见for里面不一定非得是(i=1;i<10;i++)这种格式,只要有初始化,循环条件和循环后的操作表达式都可以。

    展开全文
  • matlab 中 forwhile

    千次阅读 2019-06-13 08:28:03
    b = b | seg == list{n}(m); 在循环中修改循环变量:... matlab有特定的for循环形式,如for i=1:10,这个循环每次都会在已定的向量中取值。 如果写作: for i=1:10 ... 修改i值; end i在下次循环中并不会改...
  • 1、system busy , start flow control for a while  该异常会造成 消息丢失。 2、broker busy , start flow control for a while  该异常不会造成消息丢失。 我们系统的日志是格式化过得,exception...
  • for语句和while循环二者无条件等价

    千次阅读 2019-10-27 15:48:50
    for语句 #include <stdio.h> int main() { int i,sum; for(i = 1;i<=100;i++); printf("i = %d\n",i); return 0; } 运行结果:i = 101 ...while语句 #include <stdio.h> int main...
  • JAVA之旅(二)——if,switch,forwhile,do while,语句嵌套,流程控制,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学——献给刚入门的小程序员们 一.语句 一般语句也就三个类型判断语句 if 选择...
  • 下列关于for循环和while循环的说法中那个是正确的?() A、while循环能实现的操作,for循环也都能实现 B、while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果 C、两种循环任何时候都可替换 D、两种...
  • 浅谈js中的for循环和while循环:

    千次阅读 2018-12-31 14:38:58
    -for循环: 它的语法如下: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被执行之后执行 通常...
  • if语句:gender = input("输入性别:") if gender == "nan": print("...)注意:在if语句中一定要注意缩进的量级,只有在同一量级的语句才会被包括在if语句中,如果将代码改成:ge
  • Delphi中forwhile 使用注意事项

    千次阅读 2008-10-06 12:34:00
    循环查找并删除指定条件元素: ...while ...'While Loop I=%d StrList.Count=%d' ...当我们要循环查找并且删除指定条件的元素时,一定要用while或者由大到小的for循环 。否则会引起不必要的错误!  
  • Java中循环有三种形式 while循环、do-while循环 和 for循环。 其中从Java 6 开始for循环又分 普通for循环 和 for-each循环两种,我们接下来分别讲解。  while 循环  当条件为真时执行while循环,一直到条件为假...
  • while语句+for语句+for嵌套练习-第3天

    千次阅读 2015-08-03 21:10:42
    5、循环语句的其它特点 for(system.out.println("a");system.out.println("b");system.out.println("c"))//编译失败。 无限循环的最简单表达式 方法1: ...while(true){} 9、for语句嵌套练习-九九乘法表
  • for循环代替while(1)

    千次阅读 2015-09-27 22:33:32
     可以很清楚地看出,while(1)被翻译成了三个命令,而for(;;)却没有。很多同学可能认为,这只是三条指令而已,没有什么大惊小怪的, 但是我们要知道,很多循环都是上百万次的进行的,如果一般的函数都注意这个...
  • 看到编程之美说,一个例子含有多个for语句,这样美吗?书上用一个while来控制的 假设 有2个数组arr1[],arr2[],要打印出arr1[]和arr2[]组合的数,你肯定会用2for ,本文转为一个while,多个for也同样适用 看代码如下:
  • 一,for循环 1,for循环可以遍历任何序列的项目,如list或str。 如:barsket=[‘apple’,‘banana’,‘orange’,‘pear’] for i in barsket: print(i) 执行后会依次打印barsket中的元素 2,如果想得到1到5的...
  • 请问如何这个程序改成while和do while型。 我试过好多次,要么编译直接错误,要么运行后无限输出2是素数或无限输出3是素数。 实在很急,要交作业的,求帮忙,谢谢![图片]...
  • 上周部署项目到weblogic时候,一直报消息图标 - 错误 [DeploymentService:290066]Error occurred while downloading files from admin server for deployment request “1,428,631,595,356”. Underlying error is: ...
  • Interrupted while waiting for message on queue java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchron
  • IF函数+While函数+For循环

    千次阅读 2018-03-01 15:07:00
    For循环一般哟过来遍历数组,例如List数组或者tuple数组的每隔数值 Eg: L = [75, 92, 59, 68] sum = 0.0 for name in L: sum=sum+name print sum / 4   For循环中的Break和Continue的用法 Break的用法...
  • 编译unexpected end of file while looking for

    千次阅读 2009-10-28 16:29:00
    1.unexpected end of file while looking for precompiled header directiveA1、右键点工程名,选设置,然后选c/c++属性页,再选catagory选单中选 precompiled header ,将选项置成no use 或者autometicA2、好像是工程中...
  • 开机报这个错误,主要原因是硬盘检测不通过导致的,下面介绍两种方法规避该问题: ...使用光标定位到如下图所示位置,将 ro 改成 rw 后,按F10 键,即可按照修改后的参数引导进入系统: 输入 ...
  • 出现这种问题解决办法如下: 1.选中项目,点击project中... 2.选中C/C++,按照图中的步骤进行操作; ...4.经过上面的操作步骤后,在执行代码可以看到运行成功。...我通过上面的过程将项目改成不要预编译头,会不会对我的项
  • 因公司为了节省成本,要求迁移服务器,所以阿里云的测试环境迁移到本地时出现了这个错误。 因为使用的是阿里云的产品MongoDB,每一个副本集实例都有三个节点,Primary 节点及 Secondary 节点对外提供访问地址,...
  • 1.unexpected end of file while looking for precompiled header directiveA1、右键点工程名,选设置,然后选c/c++属性页,再选catagory选单中选 precompiled header ,将选项置成no use 或者autometic A2、好像是工程...
  • ERROR: yaml.scanner.ScannerError: while scanning for the next token found character '\t' that cannot start any token  in "./docker-peer01.yaml", line 74, column 1 如图: 我这里的原因是...
  • 要求不能使用乘除法、forwhile、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)   分析:这题本来很简单,但是不能用循环和条件判断语句。但是理论上所有的递归都可以转化为循环,那是否可以用...
  • 要求不能使用乘除法、forwhile、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)   分析:这题本来很简单,但是不能用循环和条件判断语句。但是理论上所有的递归都可以转化为循环,那...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,148
精华内容 45,259
关键字:

怎么把for改成while