问题描述
自学过程中碰到以下两道循环题目中有些需要“”标注“”boolflag=true,但另外题又标注boolflag=false,不知道什么时候设条件为true还是false,还请各位前辈帮忙指点下,不胜感激!具体两道列题如下:intinput;boolflag=true;do{try{Console.WriteLine("请输入一个数字");input=Convert.ToInt32(Console.ReadLine());Console.WriteLine("{0}这个数字的2倍是:{1}",input,input*2);flag=true;}catch{flag=false;}}while(flag);Console.WriteLine("程序结束");Console.ReadKey();//stringuserName;//stringpassWord;//boolflag=false;//do//{//flag=false;//Console.WriteLine("请输入用户名");//userName=Console.ReadLine();//Console.WriteLine("请输入密码");//passWord=Console.ReadLine();//if(userName!="admin"||passWord!="888888")//Console.WriteLine("用户名或密码错误,请重新输入");//flag=true;//}//while(userName!="admin"||passWord!="888888");//Console.WriteLine("登陆成功");//Console.ReadKey();
解决方案
解决方案二:
逻辑问题。不同的处理方式,使用true或false不同。你只需要认证按照代码的逻辑去理解就知道了。
解决方案三:
前面那个使用的是flag值来判断后者是用userName!="admin"||passWord!="888888"为条件实在不明白你到底哪里不理解。
解决方案四:
逻辑问题,要看你具体的需求了
解决方案五:
第一段代码Flag是循环条件,第二段代码Flag没用,可以将其删去不影响功能
解决方案六:
撸主的目的不就是输入数字,持续的显示它的2倍的数字,输入非数字的字符跳出循环么?intinput;boolflag=true;do{try{Console.WriteLine("Enternonnumerictoexit");Console.WriteLine("请输入一个数字");input=Convert.ToInt32(Console.ReadLine());Console.WriteLine("{0}这个数字的2倍是:{1}",input,input*2);}catch{flag=false;}}while(flag);Console.WriteLine("程序结束");Console.ReadKey();
解决方案七:
我也是初学者,看了你的问题和别人的回答,有以下感触:1、高手们不懂初学者的心理,回答太粗,不好理解。2、换个角度来想,如果你是硕士毕业后不是老师,如果经常有人问你一元一次方程的解题方法是不是可能很烦,所以懒得细致回答。这个可以理解。(为啥我要加个不是老师呢?因为以老师为职业的人耐性要好得多,这是职业习惯。)3、关于你的问题,我暂时不做技术性解答,因为我也是最新新手一枚,到今天为此也只利用下班时间学了20多天。但我可以负责任地告诉你,我帮你找出的问题比回答你的那些个网友更专业,更细致,因为我从事的是极需要耐心的初中小学教育工作。我知道初学得需要什么。4、提几点与技术无关的吧,不然说我吹牛:(1)你的trycatch中,try中包含的语句过多,只有input=Convert.ToInt32(Console.ReadLine());可能出现异常,所以try中只需要包含这个就可以了,多了会破坏代码的可读性的。(2)提问时请把作业题目写出来。也许有些题目新手以为是做得很好了,只是其中一个小问题,但极有可能自己的答案有错误或不是最优化的,遇到我这样的好心人一定会帮你指出。(3)多写注释。其实注释的作用不仅仅是为了别人看或自己以后看得懂,还有个作用,能帮助自己理清逻辑结构,多写有时会有“顿悟”的效果。我觉得你这段代码是从编辑器复制下来的,注释不够。5、为什么我要写这么多来回答你呢?因为我也是个新手,遇到许多问题都不能解决,总想找些都是C#新手组群在一起共同学习,好处是“三人行,必有我师抽烟”。真心希望你加入我刚才建立的群一起学习,遇到问题可以讨论,及时得到可参考的答案,不至于落得在论坛来发言然后等答案。欢迎您加入QQ群9658980,本群以学习交流C#为主,欢迎提出在学习C#中遇到的各种问题。群主也是初学者。凡提出的问题,我将在每日晚上统一作答,我不能解决的也会回复你此问题太难,群主不懂。凡打广告者及聊天刷屏的一律踢。凡是抱着学习C#的态度进群的恭喜你找对地方了,绝不会让你后悔。引用一句今人名言:“学习的过程就是不断提出问题,不断解决问题的过程。”晓得这句话是谁说的不?告诉你,就是群主说的。欢迎提问题哈,群主将会把你们提出的所有问题记录下来并分类整理,供初学者借鉴。QQ群9658980
解决方案八:
boolflag=true;do{//.......这里应该有一个flag=false;}while(flag);
在这个应用场景中flag是开关,当他为true时就循环,否则就不循环
解决方案九:
变量名是你自己起的,不一定都是flag,反过来,都是flag也不一定用在一个场合while(){},先判断条件,以决定是否执行{}中代码do{}while(),先执行一次,才判断条件,要true(而不管你的变量名是什么),下次才执行