2012-03-31 5 views
1
if(true)  
    System.out.println("one"); 
System.out.println("two); 
System.out.println("three); 

처음에는 이상하게 보입니다. 제 질문은 설명을위한 것입니다 : 만약 내가 if 후에 코드 블록을 사용하지 않는다면 영향을받을 것입니다; 코드 블록을 사용하면 코드 블록 안에 영향을 미칩니다 .- 맞습니까? 또는이 예제를 통해 일어나는 것을 모르는 어떤 것이 있습니까? 그 뒤에 다음이 만 System.out.println("one")있어,자바 구문 - 코드 블록을 사용하지 않는 경우

one 
two 
three 

if 문이 귀하의 경우 (연산자를 실행하는 것입니다

if(true){ 
    System.out.println("one"); 
} 
System.out.println("two"); 
System.out.println("three"); 

출력 중괄호 그림 ({} :

+0

그 밖의 무엇을 기대 했습니까? 이것은 실제로 의미가 없습니다. – Corbin

+0

내가 이것을 시도 할 때 나는 오류를 기대하기 때문에 그것이 효과가 있기 때문에. 나는 그저 상식을 알고 있지만, 나는 단지 사물을 분명히하면 어떨까요? – user1293258

+0

구문 오류 또는 인쇄하지 않을 것으로 예상됩니까? (또한 사이드 노트에 사람들은 블록에 대해 더 이상 알지 못합니까? 이것은 3 일 만에 5 번째 질문과 같습니다. 뜻은 의미가 아니라 호기심입니다.) – Corbin

답변

9

귀하의 경우에 해당합니다.)도 연산자입니다. 예 :

if(false) 
System.out.println("one"); 
System.out.println("two"); 
System.out.println("three"); 

/*output will be: 
two 
three 
*/ 

//and in this case there will be no output 
if(false){ 
    System.out.println("one"); 
    System.out.println("two"); 
    System.out.println("three"); 
} 
0

Java (및 유사한 언어)에서 단일 명령문은 해당 단일 명령문을 포함하는 블록과 동일합니다. 두 가지 방법

if(true){ 
//statement 1 
//statement 2 
//statement 3 
} 

여러 줄을 실행하려면

에 기록 할 수있는 경우 자바에서

1

, 당신은 블록을 사용합니다. 단 한 줄을 쓰고 싶다면 아웃 블럭과 함께 사용할 수 있습니다.

if(true) 
//statement 1 

그러나 한 줄의 문장도 블록으로 작성 될 수 있지만 동일하게 작동합니다. 차단과 같은

if(true){ 
//statment 1 
} 

작품 같은

0

Java Language Specification for the if statement는 정의

IfThenStatement: 
    if (Expression) Statement 

문이 더 defined as입니다 : 즉

Statement: 
    StatementWithoutTrailingSubstatement 
    <removed for brevity> 

StatementWithoutTrailingSubstatement: 
    Block 
    <removed for brevity> 

: if 문이 Statement 포함 된 경우 이는일 수 있습니다.(대괄호 사이의 명령문 목록)

관련 문제