当前位置:  编程技术>java/j2ee

JAVA基础 语句标签的合法使用,以及{}语句块到底有什么用?

    来源: 互联网  发布时间:2014-10-21

    本文导语:  如写这样的一段代码: 代码如下: int i; { int j=1; i=j; } 如果这段代码是存在于类定义区域,那么我们知道它是个普通的语句块,用于初始化类属性的内容,它会在类实例化的时候被调用,里面可以执行一些方法。 在很多实例...

如写这样的一段代码:
代码如下:

int i;
{
int j=1;
i=j;
}

如果这段代码是存在于类定义区域,那么我们知道它是个普通的语句块,用于初始化类属性的内容,它会在类实例化的时候被调用,里面可以执行一些方法。
在很多实例里,它会用于单例等模式,之前加上一个static,来为复杂的类初始化内容,可以避免一些由于加载顺序引起的运行期异常。
但是,如果这段代码出现在方法里呢?
它基本一点意义都没有。在我自己从前的想法里,它就是个把代码括起来的格式,没有其他。
今天写了一点和“语句标签”相关的代码:
代码如下:

label17: int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag)
break label17;
return 0;

在“:”位置出现了异常“Syntax error on token ":", { expected after this token”。
即是说,当代码无法单行存在的时候(int i在方法体内部必须有明确的实例化赋值位置),label17需要用语句块标明。
正确的格式是:
代码如下:

label17: {
int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag)
break label17;
return 0;
}
或者:
   label17:
int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag){
break label17;
return 0;}

再来看个错误的用法:
代码如下:

label13: int x = 0;

很明显,在标签后有个默认的单行语句块,这个x在以后的任何位置都无法被使用到,错误。提示如下:
Multiple markers at this line
- x cannot be resolved to a variable
- Syntax error on token "int", delete this token
正确的格式有两种:
代码如下:

int x = 0;
label13: x = 0;
或者
label13:{ int x = 0;}

于是推想,以前的一个思维误区,for(){},if(){}之类的用法中,逻辑if()和语句块{}应该是相互独立的两种语法。

    
 
 

您可能感兴趣的文章:

  • java有没有类似go语句指定到某条语句?
  • 请问如何在Java中执行SQL的块语句?
  • 编写把一java程序中所有的print语句都删除,帮忙分析一下思路。
  • java switch语句使用注意的四大细节
  • 请问java里怎么用goto语句??举个例子,好吗?谢谢
  • 关于java中执行sql语句使用order by的问题!
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • 请问如何在java中执行sql块语句?
  • 简单问题! java中可以使用类似于 X + =10;的语句?
  • 在java中怎样用return语句?
  • 在Java程序中怎样动态的检查SQL语句是否正确?
  • JAVA JODBC中怎样连续操作两个(或以上)的SQL语句
  • Java的SQL语句执行错误问题
  • Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API
  • JAVA心得分享---return语句的用法
  • 请问下面这个java语句段代表什么意思
  • 写JAVA程序时,如果一行语句太长了,我想换行继续写,应该怎么办呢???
  • 将数据库某一个表的几行复制到另一个表,应该用怎样的sql语句(java jdbc)(急)
  • java实现简单的给sql语句赋值的示例
  • 在JAVA中如何能够等待一定时间以后再做下面的语句??
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • 初哥问题:JAVA和JSP到底是啥关系??????????
  • 特别推荐!用java到底能干些什么!!!!
  • Internet Explore 6.0 到底支不支持持JAVA?
  • java到底有没有前途和钱途?(2年之内)
  • 一个极其菜的问题:JAVA,VISUAL J++,JAVA SCRIPT,EJB,它们之间到底有什么关系,谢谢!
  • 菜鸟求救: 到底应该如何学习java???
  • java sdk 与jdk到底有何区别?
  • vc,delphi&java三者之中到底谁更能支持面向对象技术?
  • Java在美国很火是事实,它到底火在哪?!
  • 请问java到底包括那些东西?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 小弟请教各位高手,在JAVA中通过什么函数能获得Button的标签内容?
  • java去掉html标签 必须首先去掉双引号的正则
  • Java中替换HTML标签的方法代码
  • 在编译使用扩展标签的java文件时,得到package javax.servlet.jsp does not exist,package javax.servlet.jsp does not exist的错误
  • Java自定义简单标签实例
  • Java/Js下使用正则表达式匹配嵌套Html标签
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 简单说说Java SE、Java EE、Java ME三者之间的区别


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3