说一个一直对Switch default的误解,也算是写的第一个帖子吧。

        记得第一次接触 Swith 关键字时还是在高中的时候,那时是在学习C语言(好难的一门语言,要精通真够麻烦的,我学的就十分不好,)。但是前几天用了一下Java,偶遇一个一直被误解的关键字,switch 中的 default  ,当时遇到的代码如下:
class mySwitch{
    
public static void main(String[] args){
        
int intA=0;

        
switch(intA){
            
default:System.out.println("default");break;
            
case 0:System.out.println("0");break;
        }



    }

}

    用我当时对他的误解认为程序,从上往下走,遇到 default 就会去执行 输出 “default”,可是输出的结果却是
    
    觉得不对劲,于是便又写了一段C语言的代码。    
main()
{
  
int intA=0;
  
switch(intA)
  
{
    
default:printf("default");break;
    
case 0:printf("0");break;
  }

}
    可是输出的结果却还是 0
    所以看来 这个关键字应是先去判断他所有的可能,如果没有的话再去执行default 
    于是又试了下C#,代码如下:    
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    
class Class3
    
{
        
static int intA = 0;
        
public static void Main()
        
{
            
switch (intA)
            
{
                
default: Console.Write("Default"); break;
                
case 0: Console.Write("0"); break;
            }


            Console.Read();
        }

    }

}
    输出结果依然为 “0”,断点调试,程序依然是先走的Case  0,输出了0 ,然后跳到了 break;
    哎~!一直被误解着这样的结果,当然这样的情况在一般的时候是遇不到的,它常出现的地方是那些练习题中的。故意将default 写到最上面,然后让找结果。以后真要注意了。:(
    另外还试验了 VB.Net。代码如下:

    可能你已经能看到了出现了波浪线,其中的提示为
    
    看来VB.Net 中是不允许这样写的。
    看来以后要好好的搞一搞这样的怪写法,弄出来的结果了。不然真会搞错些东西。
    写的东西很烂,不过算是给自己留一个印象吧。  先闪,免得一会弄一身 番茄。
    
posted @ 2008-03-25 17:32  二十二号同学  阅读(3961)  评论(3编辑  收藏  举报