본문 바로가기
웹 풀스택 스터디(뉴렉처-학원)--> 이거 꼭 보세요

8. 자바 (조건문)

by 백엔드개발자0107 2021. 8. 11.
package res;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;

public class Program2 {

	public static void main(String[] args) throws IOException {

		File datacopy = new File("res/data-copy.txt");
		
		FileInputStream fis = new FileInputStream(datacopy);
		
		File datacopy2 = new File("res/data-copy2.txt");
		
		FileOutputStream fos = new FileOutputStream(datacopy2);
		
		Scanner fscan = new Scanner(fis);
		
		PrintStream fout = new PrintStream(fos);
		
		//반복의 두가지 유형
		// 1. 어떤 조건이 만족될 떄가지... 계속 무한히 ,,, 반복
		// 2. 특정 수만큼만 반복하는 반복 *******
		
		int i = 0;
		int sum = 0;
		
		boolean done = false;
		
		
		
		
		while(i<5 && fscan.hasNext()) {
			
			String x_ = fscan.next();
			
			
			int x = Integer.parseInt(x_);
			sum+=x;
			
			i++;
			
		}
		
		fout.printf("sum is %d\n",sum);
		
		fscan.close();
		fout.close();
		fis.close();
		fos.close();
		
		System.out.println("작업완료 ");
		
}
	}

자, 퀴즈!

i = 3;

 

int y = i+++1;은 무엇인가?

 

y는 5이다.

for(int j = 0; j< 5 && fscan.hasNext();j++) {
			
			
			String x_ = fscan.next();
			
			
			int x = Integer.parseInt(x_);
			sum += x;
			
			
			
			
		}
        
 
		fout.printf("sum is %d\n",sum);

 

반복문에는 while문과 for문이 있다>!

 

fout.printf("sum is %d\n",sum); 와 같이 %d를 이용하여 출력할떄에는 ,반드시 println이 아닌 printf를 사용한다.

 

		for(int i = 0;i<10;i++) {
			
			System.out.printf("%d",10-i);
			
		}

이 코드를 기억하자! 파이팅!

 

	//[1]2 3 [4]5 6 [7]8 9 [10] => 수열 : an = a1 +(n-1)xd
		// i+1 : 1 2 3 4 5 6 7 8 9 10
		// n: 1 4 7 10
		int n = 1;
		for(int i = 0;i<10;i++)
		if(i+1 == 1+(n-1)*3) {
			System.out.printf("[%d]",i+1);
			n++;
		}
		else
			System.out.printf("%d ",i+1);

보통 등차수열을 이용한 계산법이 편하다.!

 

즉, 내 말은 if(i%3 ==0) 으로 해도 값은 나오나 , 그렇게 하면 여러가지로 정형화된 식을 나타내기가 어렵다.

 

무조건 등차수열식으로 나타내는게 조금더 가독성에 좋다고 할수 있다>!