当前位置: 首页 > 面试题库 >

转换大小写语句中的Java作用域声明如何?

秦权
2023-03-14
问题内容

以下Java代码在Java 1.7中执行时没有错误

public static void main(String[] args) {
    int x = 5;

    switch(x) {
        case 4: 
            int y = 3423432;
            break;  
        case 5: {
            y = 33;
        }
    }
}

java如何确定y是一个int,因为声明永远不会运行。当在case语句中不使用大括号时,case语句中的变量声明是否会限制在switch语句级别?


问题答案:

声明不是“运行”-不需要执行声明,它们只是告诉编译器变量的类型。(将运行一个初始化程序,但这很好-您在分配变量值之前不尝试读取该变量。)

switch语句中的作用域绝对是奇怪的,但是基本上在第一个声明的变量case仍然在第二个的范围内case

从JLS的6.3节开始:

块中的局部变量声明的范围(第14.4节)是该声明在其中出现的其余部分,从其自身的初始化程序开始,并在局部变量声明语句的右侧包括其他任何声明符。

除非您创建额外的块,否则整个switch语句都是一个块。如果需要每种情况的新作用域,则可以使用花括号:

case 1: {
    int y = 7;
    ...
}
case 2: {
    int y = 5;
    ...
}


 类似资料:
  • 问题内容: 我想将字符串的第一个字符转换为大写,并将其余字符转换为小写。我该怎么做? 例: 问题答案: 尝试以下尺寸: 基本上,它首先处理空字符串和一个字符字符串的特殊情况,否则正确处理一个两字符以上的字符串。而且,正如评论中指出的那样,功能不需要使用一个字符的特殊情况,但我仍然希望明确,特别是如果它导致更少的无用调用(例如子字符串以获取空字符串),小写字母它,然后附加它。

  • JSP 声明语句用于声明一个或多个变量、方法,以供后面的 Java 代码使用。您必须先对变量和方法进行声明,才能使用它们。 JSP 声明语法如下: <%! 声明语句 %> 等效于 示例 JSP脚本和声明的区别 JSP 脚本只能声明变量,不能声明方法。JSP 声明语句可以声明变量和方法。 JSP 脚本会把包含的内容转译插入到 Servlet 的 service() 方法中,也就是  中定义的变量是局

  • 问题内容: 我收到以下代码的编译错误: 如果将其更改为以下代码,则没有编译错误: 为什么第一种语法是错误的,以及从哪种语言标准开始? 问题答案: Java规范说一条语句具有以下形式: 在哪里和可各种各样的事情,包括块(代码括号括起来),任务(已声明的变量),其他的if语句等。 值得注意的是,该列表中缺少声明语句(例如或),因此会出现编译错误。 有关完整列表,您可以在此处阅读Java规范:http

  • String 类的 toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响。语法格式如下: toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响。语法格式如下: 例如: 例 1 下面的实例代码演示了如何对字符串应用大写和小写转换。 代码比较简单,运行后的输出结果如下:

  • 问题内容: 在Java中大小写转换字符串的方法是什么? 问题答案: String#toLowerCase和String#toUpperCase是您需要的方法。

  • 问题内容: Java编译器如何处理以下开关块?“ b”变量的范围是什么? 注意,“ b”变量仅在switch语句的第一个分支中声明。尝试在第二个分支中声明它也会导致“重复的局部变量”编译错误。 注意:以上代码使用Java 1.6编译器进行编译。 问题答案: 与通常一样,范围由和分隔。