for문
- 원하는 실행문(들)을 원하는 횟수만큼 반복 실행하는 제어문
- ing i = 0// 루프 변수, Loop Variables
for (초기식; 조건식; 증감식)
{
실행문;
}
참고예제) Ex46, Ex47, Ex48(유효성검사)
class Ex46_for
{
public static void main(String[] args)
{
/*
for(int i=0; i<10; i++) {
System.out.println(i);
}
for(int i=0; i<10; i+=2) {
System.out.println(i);
}
//1~100사이의 짝수만을 출력하라
for(int i=0; i<=100; i+=2) {
System.out.println(i);
}
//1~100사이의 7의 배수만 출력하라
for(int i=1; i<=100; i++) {
if(i%7==0) {
System.out.println(i);
}
}
//1~100사이의 7의 배수만 출력하라
for(int i=7; i<=100; i+=7) {
System.out.println(i);
}
for(int i=10; i>0; i--) {
System.out.println(i);
}
for(int i=1; i<=10; i++) {
System.out.println(11-i);
}
// 누적변수, 합계변수
int sum=0;
for(int i=1; i<=10; i++) {
sum += i;
}
System.out.println(sum);
// break, continue
for(int i=0; i<10; i++) {
if( i == 5 )
{
continue;
}
System.out.println(i);
}*/
for(int i=1; i<=30; i++) {
if( i == 7 || i == 20 )
{
//break;
continue;
}
System.out.printf("%d번 학생 상담..%n",i);
}
}//end main
}
--------------------------------------------------------------------------------------------
import java.io.*;
class Ex47_for
{
public static void main(String[] args) throws IOException
{
// 반복문 구상이 패턴을 찾아야 한다.
//
/*
//구구단 5단
System.out.println("============");
System.out.println(" 5단");
System.out.println("============");
for(int i=1; i<10; i++) {
System.out.printf("5 x %d = %2d%n",i,5*i);
}
// for문 중첩, 다중 for문
// 2중 for문
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
System.out.println("안녕~");
}
}
//3중 for문
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
for(int k=0; k<10; k++) {
System.out.println("Hi~");
}
}
}
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
if(i==5) { break; }
System.out.printf("i : %d, j : %d%n",i,j);
}
}*/
// 구구단 전체 출력
for(int i=2; i<10; i++) {
System.out.println("============");
System.out.printf(" %d단%n",i);
System.out.println("============");
for(int j=1; j<10; j++) {
System.out.printf("%d x %d = %2d%n",i,j,i*j);
}
}
}//end main
}
-------------------------------------------------------------------------------------------
class Ex48_for_infiniteLoop
{
public static void main(String[] args) throws java.io.IOException
{
//for(;;)
// for(int i=0;;i++)
// {
// System.out.println("무한루프"+i);
// }
//주소록 관리
// 삽입,보기,삭제 등
boolean ing = true;
for(;ing;)
{
System.out.println("=================");
System.out.println(" 1.주소록 추가");
System.out.println(" 2.주소록 보기");
System.out.println(" 3.주소록 검색");
System.out.println(" 4.주소록 삭제");
System.out.println(" 5. 종료");
System.out.println("=================");
System.out.print("항목선택 : ");
int input = System.in.read();
switch(input)
{
case 49 :
//추가작업
break;
case 50 :
//보기작업
break;
case 53 :
// 종료
ing = false;
break;
}
System.in.skip(2);
}
}//end main
}
---------------------------------------------------------------------------------------------------------
class Ex49_for
{
public static void main(String[] args)
{
// 유효성 검사
// 1. 영문 소문자만 입력
// 2. 영대소문자만 입력
String data = "testTEST";
// data.charAt(0) -> 't'
// data.substring(0,1) -> "t"
// System.out.println( 'a' > 'b' ); //char는 비교가능!
// System.out.println( "a" > "b" ); //문자열은 비교불가!
boolean flag = true;
for(int i=0; i= 'a' && c <= 'z' )) {
if((c<'a'||c>'z') && (c<'A'||c>'Z') && (c<'0'||c>'9')) { // 영어 소문자 대문자 모두 아닐때
//System.out.println("유효하지 않습니다!");
flag = false;
break;
}//end if
}//end for
if(flag)
System.out.println("유효함");
else
System.out.println("유효하지 않음");
}
}
while문
- for과 유사
- 조건문이 true이면 실행문을 반복 실행
while(조건문)
{
실행문;
}
참고예제) Ex50_while
class Ex50_while
{
public static void main(String[] args)
{
//1~10출력
for(int i=1; i<=10; i++) {
System.out.println(i);
}
int n=1;
while (n<=10) {
System.out.println(n);
n++;
}
/* // 무한루프
while(true)
{
}
*/
// 구구단 9단
int dan = 2; //단
while(dan <=9)
{
int num = 1; //루프변수용
while(num <=9)
{
System.out.printf("%d x %d = %d%n",dan, num, num*dan);
num++;
}
dan++;
}
}//end main
}
do-while 문
- while문 유사
- while문 : 선조건 후실행
- do while문 : 선실행 후조건
- while문에서 순서상 발생하는 중복코드 제거(Ex51예제)
do
{
실행문;
} while(조건문);
참고예제) Ex51_doWhile
import java.io.*;
class Ex51_doWhile
{
public static void main(String[] args) throws IOException
{
// 사용자로부터 값을 입력 -> 출력, 종료("z")
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
/*
System.out.print("입력 : ");
String input = reader.readLine();
while(!input.equals("z")) {
System.out.println("응답 : "+input);
System.out.print("입력 : ");
input = reader.readLine();
}
*/
String input = "";
do {
System.out.print("입력 : ");
input = reader.readLine();
System.out.println("응답 : "+input);
} while(!input.equals("z"));
}
}
Random 클래스
import java.util.*;
class Ex52_Random
{
public static void main(String[] args)
{
// Random -> 난수(임의의 수)
// 난수생성기
for(int i=0; i<6; i++) {
Random rnd = new Random();
int num = rnd.nextInt(45) + 1;
System.out.println(num);
// 0.0(포함) ~ 1.0(제외)사이의 난수
float f = rnd.nextFloat();
double d = rnd.nextDouble();
System.out.println((int)(d*10));
}
}
}
자바에서의 문자열
1. String
2. StringBuffer
3. StringBuilder
** 문자열은 immutable이다!!
class Ex55_StringBuffer
{
public static void main(String[] args)
{
//Ex55_StringBuffer.java
String str1 = "안녕하세요";
StringBuffer str2 = new StringBuffer("안녕하세요");
System.out.println(str1);
System.out.println(str2);
// 수정
// 1. 추가하기
str1 = str1 + "..";
str2.append("..");
System.out.println(str1);
System.out.println(str2);
// 2. 삽입하기
str2.insert(2,"..");
System.out.println(str1);
System.out.println(str2);
}
}