Java/Basic
[Java Basic]실행 흐름과 컨트롤(윤성우의 열혈 Java 프로그래밍)
bangle0621
2020. 12. 23. 05:34
if 문과 if ~ else 문
if문
if (조건문){
실행문
}
if ~ else 문
if(조건문){
실행문
}
else{
실행문
}
class IEBasic {
public static void main(String[] args){
int n1 = 5;
int n2 = 7;
//if문
if(n1 < n2){
System.out.println("n1 < n2 is true");
}
//if ~ else 문
if(n1 == n2){
System.out.println("n1 == n2 is true");
}
else{
System.out.println("n1 == n2 id false");
}
}
}

else ~ if 문
if(조건문){
실행문
}
else if(조건문){
실행문
}
else {
실행문
}
class IEIE{
public static void main(String[] args){
int num = 120;
if(num < 0) //먼저 검사
System.out.println("0 미만");
else if(num < 100) //위 조건이 만족되지 않으면 여기서 다시 검사
System.out.println("0 이상 100 미만");
else //아무것도 만족되지 않으면 else에 속한 문장 실행
System.out.println("100 이상");
}
}

Switch 와 Break
class SwitchBasic{
public static void main(String[] args){
int n = 3;
switch(n){
case 1:
System.out.println("Simple Java");
case 2:
System.out.println("Funny Java");
case 3:
System.out.println("Fantastic Java");
default:
System.out.println("The best programming language");
}
System.out.println("Do you like java?");
}
}
switch(n) 여기서 n 에 해당하는 숫자가 1,2,3,4 이런 형태로 나와서 case1 case2 이곳으로 가는것이다.

다만 해당 숫자에 가서도 뒤에 나오는 것들이 다 출력되는 것을 볼 수 있다.
그러지 않으려면 여기서 Break 문을 사용하면 된다.
class SwitchBreak{
public static void main(String[] args){
int n = 3;
switch(n){
case 1:
System.out.println("Simple Java");
break;
case 2:
System.out.println("Funny Java");
break;
case 3:
System.out.println("Fantastic Java");
break;
default:
System.out.println("The best programming language");
}
System.out.println("Do you like java?");
}
}

Break문을 사용시 위처럼 해당 case 만 출력되고 밖으로 나가게 된다.
class CondOp{
public static void main(String[] args){
int num1 = 50;
int num2 = 100;
int big;
int diff;
big = (num1 > num2) ? num1 : num2;
System.out.println("큰 수는 :" + big);
diff = (num1 > num2) ? (num1 - num2) : (num2 - num1);
System.out.println("절댓값 :" + diff);
}
}

참일경우 앞의 값, 거짓일 경우 뒤의 값이 출력된다.
(조건문:참) ? num1 : num2;
num1 이 출력
(조건문:거짓) ? num1 : num2;
num2 이 출력
for문
class ForBasic{
public static void main(String[] args){
for(int i=0; i<5;i++)
System.out.println("I love Java" + i);
}
}
결과

While 문
class WhileBasic{
public static void main(String[] args){
int num=0;
while(num<5){
System.out.println("I like Java" + num);
num++;
}
}
}
결과

Do While 문
while 문과는 달리 일단 DO! 한번은 실행해준 뒤 조건을 확인한다.!
class DoWhileBasic{
public static void main(String[] args){
int num = 0;
do {
System.out.println("I like Java" + num);
num++;
}while(num<5);
}
}
결과

Continue 사용
class ContinueBasic{
public static void main(String[] args){
int num = 0;
int count = 0;
while((num++)<100){
if(((num%5)!=0)||((num%7)!=0))
continue;
count++;
System.out.println(num); //5와 7의 배수인 경우에만 실행
}
System.out.println("count : " + count);
}
}

continue 를 사용한다면 밑으로 가지 않고 (해당 경우에선 count++ 로 가지않고) 위의 조건문으로 다시 간다
이 경우엔 num 가 5와 7의 배수일 경우에만 count 가 된다.
BreakPoint
class BreakPoing{
public static void main(String[] args){
for(int i = 1;i<10;i++){
for(int j=1;j<10;j++){
if((i*j)==72){
System.out.println(i + "X" + j + "=" + i*j);
break;
}
}
}
}
}

위에서 처음에 나왔을 때 나오고 싶다면 밑에처럼 outer 를 잡아준다.
class LabeledBreakPoing{
public static void main(String[] args){
outer: for(int i=1; i<10;i++){
for(int j=1;j<10;j++){
if((i*j)==72){
System.out.println(i+"X"+j+"="+i*j);
break outer;
}
}
}
}
}
