我看了下,你写的东西对着呢,但是这里 case和数字中间要空一格!

解决方案 »

  1.   


    static void Main(string[] args)
            {
                 int i; 
                string str; 
                Console.WriteLine("请选择你最喜欢的课程编号,-1退出:"); 
                Console.WriteLine("1,语文"); 
                Console.WriteLine("2,数学"); 
                Console.WriteLine("3,英语"); 
                Console.WriteLine("4,物理"); 
                Console.WriteLine("5,化学"); 
                Console.WriteLine("-1,退出"); 
                do 
                { 
                    str=Console.ReadLine(); 
                    i=Int32.Parse(str); 
                    switch(i) 
                    { 
                    case 1: 
                        Console.WriteLine("你喜欢的课程是语文"); 
                        break; 
                    case 2: 
                        Console.WriteLine("你喜欢的课程是数学"); 
                        break; 
                    case 3: 
                        Console.WriteLine("你喜欢的课程是英语"); 
                        break; 
                    case 4: 
                        Console.WriteLine("你喜欢的课程是物理"); 
                        break; 
                    case 5: 
                        Console.WriteLine("你喜欢的课程是化学"); 
                        break; 
                    default: 
                        Console.WriteLine("以上没有你喜欢的课程"); 
                        break; 
                    
                    } 
                } 
                while(i!=-1); 
                    Console.WriteLine("再见!");         }
    一点问题没有..一个很好的控制台应用程序就可以测试出来..
    应该就是楼上说的..case后面要打一空格..
      

  2.   

    在do最后加上一句 还要执行吗 如果执行请输入yes/on 在while里面改成变量==yes 
      

  3.   

    绝对有意思````只是要将i!=-1 该成i==-1
    do{}while()循环是:做...直到满足while条件为止.所以应该改为i==-1,因为你的需求描述的是i=-1的时候就退出.
    还有就是,最后再加一个Console.ReadLine(); 
    否则你将看不到"再见"两个字(也不能说是看不到,就是刚显示还没看清楚),控制台就关掉了,那么Console.WriteLine("再见!"); 就没啥意义了
      

  4.   

    i!=-1要要,只不过要改一下using System; 
    using System.Collections.Generic; 
    using System.Text; namespace 控制台程序交互 

        class Class1 
        { 
            static void Main(string[] args) 
            { 
                int i; 
                string str; 
               do 
                {            Console.WriteLine("请选择你最喜欢的课程编号,-1退出:"); 
                Console.WriteLine("1,语文"); 
                Console.WriteLine("2,数学"); 
                Console.WriteLine("3,英语"); 
                Console.WriteLine("4,物理"); 
                Console.WriteLine("5,化学"); 
                Console.WriteLine("-1,退出"); 
                
                    str=Console.ReadLine(); 
                    i=Int32.Parse(str); 
                    switch(i) 
                    { 
                    case1: 
                        Console.WriteLine("你喜欢的课程是语文"); 
                        break; 
                    case2: 
                        Console.WriteLine("你喜欢的课程是数学"); 
                        break; 
                    case3: 
                        Console.WriteLine("你喜欢的课程是英语"); 
                        break; 
                    case4: 
                        Console.WriteLine("你喜欢的课程是物理"); 
                        break; 
                    case5: 
                        Console.WriteLine("你喜欢的课程是化学"); 
                        break; 
                    default: 
                        Console.WriteLine("以上没有你喜欢的课程"); 
                        break; 
                    
                    } 
                } 
                while(i!=-1); 
                    Console.WriteLine("再见!"); 
            } 
        } 

      

  5.   

    后面的判断i!=-1没有任何意义,因为你输入-1的时候循环已经Break了……
      

  6.   

    后面的判断i!=-1没有任何意义,因为你输入-1的时候循环已经Break了……
      

  7.   

    加上空格就OK了,i!=-1没有问题
      

  8.   

    楼上的说的意思是最好用while do 的形式
    不要do while 
      

  9.   

    Do while的特性是,至少要执行一次,Console.WriteLine("3,英语"); 前的数字有什么意义吗?
      

  10.   

    case 与数字之间有空格就对了
      

  11.   

    while (i != -1);
    只要在case 与常量之间加上空格就行 其余是没问题的
    至于while (i != -1); 拿来的问题?
      

  12.   

    break 跳出 swith   
    while (i = -1); 结束循环!