`
nakupanda
  • 浏览: 416180 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个switch中的关于变量声名和使用的问题

    博客分类:
  • java
J# 
阅读更多
时间: 2007-12-17

先看看几句简单的代码



int i=2;
switch(i)
{
 case 1:
  int j=100;                       // 1
  System.out.ptintln("j is:"+j);   // 2
  break;
 case 2:
  j=200;                           // 3
  System.out.ptintln("j is:"+j);   // 4
  break;
}







很清楚i被初始化为 2 , 所以 case 1: 里的内容不会被“执行”,最少我们可以根据 // 2 处的代码没有输出任何东西证明。



毫无疑问case 2:内的东西将会被执行,输出“j is:200”。

这里的问题是:既然case 1:里的东西不被执行,那么j何时被声明?



如果把 //3行去掉,将会输出什么?

在去掉 // 3 行之后,编译器报错,提示变量未初始化;



如果把 //3行改为 int j = 200 ; 将会输出什么?

编译器提示j已被声明过;



于是可以得出结论,switch里不被“执行”的case块里的声明语句是有效的,初始化语句和其他语句是无效的。
分享到:
评论

相关推荐

    实验一 条件语句、循环语句的使用 2.switch 条件语句

    在提供的`Example12.java`代码中,我们看到了一个简单的`switch`语句应用,以及如何在`main`方法中设置和使用变量`answer`。当运行这段代码时,由于`answer`的值被初始化为'B',所以程序将输出“B 正确”。如果你...

    浅谈ElementUI中switch回调函数change的参数问题

    在ElementUI中,switch组件是一个常用的交互元素,用于创建可切换状态的按钮。它通常用于表示二元选择,比如开启或关闭。 当我们使用ElementUI的switch组件时,可能会遇到需要在状态变化时触发一些操作,比如发送...

    switch语句在java和c#中的区别

    在这个例子中,C# 的 `switch` 语句有一个重要的特点:如果没有 `break` 语句,程序会继续执行下一个 `case`。因此,当 `Grade / 10` 等于 7 时,`case 7:` 和 `case 6:` 都会被执行,导致输出 "你的成绩为:C" 和 ...

    DSP程序变量存储问题

    DSP程序通常会使用不同的存储区域来存储各种类型的变量和代码。根据是否已经初始化以及变量的生命周期等因素,这些存储区域可以分为以下几类: 1. **已初始化的段**:这些段包含在编译期间就已经被初始化的数据,...

    结构体变量(包括年、月、日),编程序,要求输入年月日,程序能计算并输出该日在本年中是第几天

    구조体变量在VC++中的应用及计算日期在一年中的天数 在VC++中,结构体变量是一种...通过学习这个例子,我们可以学习如何使用结构体变量和switch语句来解决实际问题,并了解如何考虑闰年问题来计算日期在一年中的天数。

    在java switch中使用String作为分支条件

    为了解决这一问题,Java 7引入了一个新特性——支持直接在`switch`语句中使用`String`类型的变量。本文将详细介绍如何在Java中利用`switch`语句与字符串进行条件判断,并提供一种在Java早期版本中通过自定义枚举(`...

    switch开关

    一个滑动开关通常由两部分组成:一个容器(通常是`div`元素)和两个状态按钮(例如,`span`元素)。容器设置为水平方向的`display: inline-block`,按钮则设置为相对定位,以便我们可以控制它们的位置。滑动开关的...

    在ListView中嵌套Switch开关,点击ListView条目来切换Switch的状态

    - 为了提高ListView的滚动性能,通常会在`getView()`方法中使用convertView和ViewHolder模式。ViewHolder持有列表项中各个控件的引用,避免频繁的findViewById操作。 4. **Switch的使用**: - Switch是Android的...

    使用switch语句构成的分支结构实现选择主菜单中的选项

    我们可以创建一个整型变量`userChoice`来存储用户的输入,然后使用`switch`语句来处理每个选项: ```java int userChoice; std::cout 请选择操作:\n1. 查看个人信息\n2. 修改密码\n3. 退出程序\n"; std::cin >> ...

    用switch语句判断每个月有多少天

    在编程领域,`switch`语句是一种常用的控制流结构,...总的来说,使用`switch`语句判断每个月有多少天是一个很好的编程练习,它涵盖了条件判断、逻辑处理以及基本的日期和时间操作,这些都是软件开发中不可或缺的技能。

    C#数据类型和变量

    当创建一个引用类型变量时,实际上创建的是对内存中对象的引用,而不是对象本身。例如,`string str = "Hello";`声明了一个字符串变量str,它指向内存中包含"Hello"的字符串对象。 变量是存储数据的容器,它们在...

    java用switch语句输出两个数的运算结果(运用字符变量+-*/).rar

    在一个程序中定义两个整数,定义一个字符变量,当这个字符变量分别是‘+’、‘-’、‘*’、‘/’时,用switch 语句输出这两个数的运算结果。(可以练习从控制台上输入两个数以及运算符,进行运算。 注:可以运行

    switch的BOOT0和BOOT1文件,各个历代版本都有,续航非续航lite用BOOT0BOOT1合集

    BOOT0是Switch启动流程中的第一个阶段,它负责初始化硬件、验证系统固件的完整性,并加载后续的启动程序BOOT1。由于其在启动链中的早期位置,BOOT0通常包含安全机制,如加密和数字签名,以防止非法篡改。 2. **...

    Case_Switch.rar_case switch labview_labview swit_labview switch_

    本案例中的"Case_Switch.rar"是一个关于LabVIEW中使用Case和Switch结构的示例项目。 首先,我们来详细解释一下"Case"和"Switch"的概念。在编程中,Case结构通常用于根据某个变量或表达式的结果选择执行不同的代码块...

    c++作用域运算符用法(全局变量和局部变量)

    通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。作用域运算符 代码如下:#include<iostream>using namespace std;int num=10;int...

    ios-并排创建多个等距的Switch.zip

    上述代码创建了一个`Switch`按钮,并设置了初始状态为关闭,同时为其添加了一个监听器,当开关状态改变时触发`switchValueChanged(_:)`方法。 然而,系统默认的`Switch`样式可能无法满足所有设计需求,因此我们可能...

    c语言程序设计 switch语句

    在这个程序设计实例中,我们看到一个如何巧妙使用`switch`语句的例子。 首先,程序定义了两个整型变量`k`和`x`以及一个字符变量`y`。`k`的值将根据输入的分数`x`来确定,`y`则会根据`k`的值被赋予相应的等级字母。 ...

    switch函数使用示例

    首先,switch语句的基本结构包括一个被测试的变量和一系列的case标签。每个case后面跟随一个待比较的值,当被测试的变量等于某个case的值时,相应的代码块将被执行。例如: ```c switch (被测试的变量) { case 值1...

    switch存档金手指

    EdiZon是一个强大的NS漏洞利用和存档管理工具,它允许用户编辑和管理他们的游戏存档,包括应用金手指代码。通过这个工具,玩家可以方便地导入和导出存档,以及应用各种预设或自定义的金手指代码。 使用EdiZon进行...

    嵌套选择结构设计switch选择结构

    在`switch`语句中,一个表达式的值与一系列`case`标签进行比较。如果匹配成功,相应的代码块被执行,直到遇到`break`语句退出`switch`。基本结构如下: ```c switch (表达式) { case 值1: // 值1匹配时执行的代码...

Global site tag (gtag.js) - Google Analytics