| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:if while 问题
只看楼主 加入收藏
liyan0102034
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-10-29
结帖率:0
收藏
已结贴  问题点数:1 回复次数:6 
if while 问题
程序代码:
            Console.WriteLine("请输入用户名");
            string zhanghao = Console.ReadLine();
            Console.WriteLine("请输入密码");
            string mima = Console.ReadLine();
            int i = 3;
            while (zhanghao!="admin"||mima!="admin"&&i>0)
            {
                Console.WriteLine("你输入的信息错误,你还有{0}次输入机会", i);
                Console.WriteLine("请重新输入用户名");
                zhanghao = Console.ReadLine();
                Console.WriteLine("请输入密码");
                mima = Console.ReadLine();
                i--;         


            }
            if (i < 0)
            {
                Console.WriteLine("请关闭程序重新输入");
            }
            else
            {
                Console.WriteLine("成功");
            }
            Console.ReadKey();
怎么让输入3次后显示   console.writeline("请关闭程序重新输入")  呢!!
搜索更多相关主题的帖子: mima 
2012-11-23 18:44
mmxo
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:189
专家分:1090
注 册:2012-11-7
收藏
得分:0 
i--;替换成if (--i == 0) break;
循环后面的替换成下面的:
Console.WriteLine(i == 0 ? "请关闭程序重新输入" : "成功");
Console.ReadKey();

为提高中华编程水平而奋斗
2012-11-23 18:53
smart0721
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:106
专家分:468
注 册:2012-2-10
收藏
得分:0 
嗯,2楼说得对,不过看楼主的程序应该是限制只能输入三次?!那样的话就的把if (--i == 0) break;放在 Console.WriteLine("你输入的信息错误,你还有{0}次输入机会", i);前面;即使不是,也不该这样写,不然你最后一次输入无论你输入什么,即使是输入对的账号和密码 ,都只会输出“请关闭程序重新输入”!

2012-11-23 22:57
smart0721
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:106
专家分:468
注 册:2012-2-10
收藏
得分:0 
还有,楼主,你应该还没明白if 和while之间的区别 :if只要条件为真就执行(且只执行一次,即执行到{}内最后一行就不执行了。
while 只要条件为真就一直循环执,直到条件为假.一般都会和do一起用,组成do while语句 如你这道题可以这样写:
程序代码:
            string zhanghao = "", mima = "";
            int i = 3;
            do
            {
                Console.WriteLine("请输入用户名");
                zhanghao = Console.ReadLine();
                Console.WriteLine("请输入密码");
                mima = Console.ReadLine();
                if (zhanghao == "admin" || mima == "admin")
                {
                    Console.WriteLine("登录成功");
                    Console.ReadKey();
                    return;
                }
                else
                {
                    i--;
                    if (i > 0)
                    Console.WriteLine("你输入的信息错误,你还有{0}次输入机会", i);
                }
            }
            while (i > 0);
            Console.WriteLine("请关闭程序重新输入");
            Console.ReadKey();

 
2012-11-23 23:10
mmxo
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:189
专家分:1090
注 册:2012-11-7
收藏
得分:0 
呵呵,三楼说的对,没注意看整体的程序,整体如下这样写应该是没有问题的了:
程序代码:
using System;
namespace ConsoleApplication1
{
    class Program
    {
        private const string InfoUserName = "请输入用户名:";
        private const string InfoPassword = "请输入密码:";
        static void Main()
        {
            Console.Write(InfoUserName);
            var userName = Console.ReadLine();
            Console.Write(InfoPassword);
            var password = Console.ReadLine();
            var i = 3;
            var success = userName == "admin" && password == "admin";
            while (!success)
            {
                Console.WriteLine("你输入的信息错误,你还有{0}次输入机会", i);
                Console.Write(InfoUserName);
                userName = Console.ReadLine();
                Console.Write(InfoPassword);
                password = Console.ReadLine();
                success = userName == "admin" && password == "admin";
                if (success || --i == 0) break;
            }
            Console.WriteLine(success ? "成功" : "请关闭程序重新输入");
            Console.ReadKey();
        }
    }
}

呵呵,4楼那个判断打错字了吧,应该是&&

为提高中华编程水平而奋斗
2012-11-23 23:44
Kingbox_tang
Rank: 7Rank: 7Rank: 7
来 自:天津师范大学
等 级:黑侠
威 望:3
帖 子:146
专家分:677
注 册:2012-11-27
收藏
得分:0 
我也做了一下哦,你可以参考一下下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _20121127
{//怎么让输入3次后显示   console.writeline("请关闭程序重新输入")  呢!!
    class Program
    {
        static void Main()
        {

            Console.WriteLine("请输入用户名");
            var zhanghao = Console.ReadLine();
            Console.WriteLine("请输入密码");
            var mima = Console.ReadLine();
            int i = 2;
            var fuck = zhanghao == "aaa" && mima == "aaa";
            while (zhanghao != "aaa" || mima != "aaa")
            {
                while (i > 0)
                {
                    Console.WriteLine("你输入的信息错误,你还有{0}次输入机会", i);
                    Console.WriteLine("请重新输入用户名");
                    zhanghao = Console.ReadLine();
                    Console.WriteLine("请输入密码");
                    mima = Console.ReadLine();
                    i--;
                }
                if (i <= 0)
                    Console.WriteLine("请关闭程序重新输入");
                    break;
            }
           while(fuck)
            {
                Console.WriteLine("成功");
                break;
            }
        }
    }
}

旨在提高编程水平,学有所用,学有所成,学有所为。
2012-11-27 17:17
跳过去
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:282
专家分:976
注 册:2012-8-13
收藏
得分:0 
我觉得6楼的好

光棍中.....
2012-11-27 21:33
快速回复:if while 问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017566 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved