说一个一直对Switch default的误解,也算是写的第一个帖子吧。
记得第一次接触 Swith 关键字时还是在高中的时候,那时是在学习C语言(好难的一门语言,要精通真够麻烦的,我学的就十分不好,)。但是前几天用了一下Java,偶遇一个一直被误解的关键字,switch 中的 default ,当时遇到的代码如下:
用我当时对他的误解认为程序,从上往下走,遇到 default 就会去执行 输出 “default”,可是输出的结果却是
觉得不对劲,于是便又写了一段C语言的代码。
所以看来 这个关键字应是先去判断他所有的可能,如果没有的话再去执行default
于是又试了下C#,代码如下:
哎~!一直被误解着这样的结果,当然这样的情况在一般的时候是遇不到的,它常出现的地方是那些练习题中的。故意将default 写到最上面,然后让找结果。以后真要注意了。:(
另外还试验了 VB.Net。代码如下:
可能你已经能看到了出现了波浪线,其中的提示为
看来VB.Net 中是不允许这样写的。
看来以后要好好的搞一搞这样的怪写法,弄出来的结果了。不然真会搞错些东西。
写的东西很烂,不过算是给自己留一个印象吧。 先闪,免得一会弄一身 番茄。
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;
}
}
}
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{
int intA=0;
switch(intA)
{
default:printf("default");break;
case 0:printf("0");break;
}
}
所以看来 这个关键字应是先去判断他所有的可能,如果没有的话再去执行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;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();
}
}
}
哎~!一直被误解着这样的结果,当然这样的情况在一般的时候是遇不到的,它常出现的地方是那些练习题中的。故意将default 写到最上面,然后让找结果。以后真要注意了。:(
另外还试验了 VB.Net。代码如下:
可能你已经能看到了出现了波浪线,其中的提示为
看来VB.Net 中是不允许这样写的。
看来以后要好好的搞一搞这样的怪写法,弄出来的结果了。不然真会搞错些东西。
写的东西很烂,不过算是给自己留一个印象吧。 先闪,免得一会弄一身 番茄。