import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
int A = sc.nextInt();
int B = sc.nextInt();
if(A==0 && B==0){
break;
}
System.out.println(A+B);
}
sc.close();
}
}
💡 무한루프 → 조건문이 항상 참일 때 계속해서 반복되는 반복문
while(true) { 반복 실행할 문장; }
- break; → 반복문을 벗어남
① StringTokenizer() 이용 (공백을 기준으로 문자열 분리)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while(true){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
if(A==0 && B==0){
break;
}
sb.append(A+B).append("\n");
}
System.out.print(sb);
br.close();
}
}
② String.charAt() 이용
문제의 조건에서 입력되는 정수는 반드시 (0 < A, B < 10) 이다.
즉, 한 자릿수 정수만 입력받기 때문에 공백(" ")의 위치도 항상 고정되어 있다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while(true){
String str = br.readLine();
int A = str.charAt(0) - '0';
int B = str.charAt(2) - 48;
if(A==0 && B==0){
break;
}
sb.append(A+B).append("\n");
}
System.out.print(sb);
br.close();
}
}
💡 charAt(i) → String 타입의 데이터(문자열)에서 i번째 문자를 char 타입으로 변환할 때 사용하는 메서드
- charAt()은 해당 문자의 아스키코드 값을 반환하기 때문에 정수 형태로 변경하려면 -48 또는 -'0' 명시 필요
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
while(true){
StringTokenizer st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
if(A==0 && B==0){
break;
}
bw.write(A + B + "\n");
}
br.close();
bw.flush();
bw.close();
}
}
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n");
let i = 0;
while(true){
let [A, B] = input[i].split(" ").map(Number);
if(A==0 && B==0){
break;
}
console.log(A + B);
i++;
}
while True :
A, B = map(int, input().split())
if A==0 and B==0 :
break
else :
print(A + B)
💡 파이썬에서는 예약어 True / False 의 첫 문자를 항상 대문자로 작성해야 함
- true / false (X)