for(int i=1; i<=3; i++) {   // 3번반복

for(int j=1; j<=3; j++) {  // 9번반복

if(i+j==4){

continue;  // i+j가 4면 조건으로 감.

}

System.out.println(i+", "+j);  // (1, 1) (1, 2) (2, 1) (2, 3) (3, 2) (3, 3)

}

}

===========

for(int i=1; i<=3; i++) {   // 3번반복

for(int j=1; j<=3; j++) {  // 9번반복

if(i+j==4){

break;  // i+j가 4면 조건을 끝냄.

}

System.out.println(i+", "+j);  // (1, 1) (1, 2) (2, 1)  따라서 2, 2부터는 나오지 않고

}  // i가 3이 되었을 때도 3+1은 4이므로 뒤는 다 나오지 않음.

}

===========

 

gogo:

for(int i=1; i<=3; i++) { //3번반복

for(int j=1; j<=3; j++) { //9번반복

if(i+j==4) {

continue gogo; // i+j가 4면 gogo로 감.

}

System.out.println(i+ ", "+j); (1, 1) (1, 2) (2, 1) 

}

}

 

===========

gogo:

for(int i=1; i<=3; i++) { //3번반복

for(int j=1; j<=3; j++) { //9번반복

if(i+j==4) {

break gogo; // i+j가 4면 gogo밖으로 나가버림. (끝낸다?의 느낌??)

}

System.out.println(i+ ", "+j); (1, 1) (1, 2) 

}

}

===========

Scanner sc = new Scanner(System.in);

double input, sum;

sum=0;

 

for(int i=0); i<5; i++) {

System.out.print("수 ? ");

input = sc.nextDouble();

if(input <=0.0){

continue; // 0보다 작으면 i++로 간다. 즉 밑에 더하기를 실행하지 않음.

}

sum+=input;

}

System.out.println("결과 : " + sum);

sc.close();

프로그램 예시

 

1. 합 2. 홀수합 3. 짝수합 4. 종료 => 1
원하는 수 ? 10
1~10 합 : 55 

 

이런 프로그램을 작성하시오.

 

입력받은 수, 합계, 프로그램 실행번호

Scanner sc = new Scanner(System.in);

int input, s, program;

 

while(ture){

do {System.out.print("1. 합 2.홀수합 3.짝수합 4.종료 =>");

program=sc.nextInt();

} while(program<1 || program>4);

 

if(program==4){

break;}

}

===========================4를 누르면 종료하는 프로그램을 만듦.

이제 1을 입력하고 숫자를 입력하면 입력한 숫자까지의 합을 구하고

2를 입력하고 숫자를 입력하면 입력한 숫자까지의 홀수합을 구하고

3를 입력하고 숫자를 입력하면 입력한 숫자까지의 짝수합을 구하는 것을 짜야함.

 

if (program ==1) {

System.out.print("원하는 수 ?");

input=sc.nextInt();

for(int num=1; num<=input; num++){

s+=num;

}

} else if (program ==2) {

System.out.print("원하는 수 ?");

input=sc.nextInt();

for(int num=1; num<=input; num+=2){

s+=num;

}

} else  {

System.out.print("원하는 수 ?");

input=sc.nextInt();

for(int num=2; num<=input; num+=2){

s+=num;

}

}

System.out.printf("1 ~ %까지  합 : %d", input, s);

s=0;

}

 

sc.close();

 

선생님께서는 

 

이렇게 하셨다.

변수를 3개를 더 설정함.

String title;

int start, offset;

switch(menu) {

case 1 : title="합 : "; start=1; offset=1; break;

case 2 : title="홀수 합 : "; start=1; offset=2; break;

default : title="짝수 합 : "; start=2; offset=2; break;

}

s=0;

for(int n=start; n<=num; n+=offset) {

s+=n;

}

System.out.println("1~"+num+"까지 "+title+s);

 

내가 짠 코드 보다 훨씬 짧아졌다.

 

이런 생각은 어케하는건지...

for(int i=1; i<=3; i++) {  // i가 1부터 3까지 총 3번 반복

for(int j=1; j<=3; j++) {

// i가 1일때 j 1부터 3까지 3번 반복, i가 2일 때 j 1부터 3까지 반복, i가 3일때 j 1부터 3까지 반복

if(i+j)==4{ // 근데 i+j의 합이 4이면 for문을 나가고 j 더이상 실행x

break;}

}

System.out.println(i+", "+j); // (1, 1) (1, 2) (2, 1) 가 나옴. 

}

 

ga:

for(int i=1; i<=3; i++) {

for(int j=1; j<=3; j++) {

if(i+j == 4){ // i+j 의 합이 4이면 ga를 나가라.

break ga;} 

}

System.out.println(i+ ", "+j); // (1, 1) (1, 2) 

}

 

단, 입력받은 수가 0 이하면 입력을 종료하고 합을 출력 후 프로그램 종료

 

실수

double sum, input;

입력 받는 수 input. 

입력 받은 수들을 저장할 곳 sum

 

Scanner sc = new Scanner(System.in);

 

sum=0;

 

while (true) {

System.out.print("수 ? [종료:0]");

input=sc.nextDouble();

if (input<=0.0) {

break; 

}

sum+=input

}

 

System.out.print("결과 : " + sum);

 

sc.close();

 

for (초기식;조건식;증감식) {
//실행문
}
가장 먼저 시작하는 것이 초기식.
2번에 가서 조건이 만족하는지, 아닌지, 
조건이만족하면 실행문을 실행. 그렇지 않으면 나간다. 
실행문을 실행하면 증감식을 시행하고 다시 조건식을 만족하는지 확인.

while 문 반복횟수가 정해져 있지 않은 경우.
for 문 반복횟수가 정해져 있는 경우.

for( ; ; ) = for( ; true ; ) 무한루프 

break; continue; return;

break 제어 문장을 빠져나가고 싶을 때.
while, do ~ while, for, switch~case 문에서 사용.

break 라벨명;
반복문이 다중으로 작성된 경우 한 번에 두개 이상의 반복문을 빠져 나오기 위해 사용.
라벨명은 식별자를 작성하는 방법과 동일하기 기술하고 라벨명인지 나타내기 위해 뒤에 콜론(:)을 붙임.

continue 문;
if (){continue}
for 문 안에 있으면 증감식으로 감.
while 문 안에 있으면 조건절로 감.

if.
1) int형 변수 n이 10 이상이고 20 미만일 때 true인 조건식
if( n>=10 && n< 20 ){}
2) char형 변수 ch가 공백과 탭이 아닐 때 true인 조건식
if( ch!=' ' && ch!='\t' ) {}
3) char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식
if ( ch=='x' || ch=='X' ) {}
4) int형 변수 y가 4의 배수이고 100의 배수가 아니거나 400의 배수이면 ture인 조건식
if ( (y % 4 == 0 && y % 100 !=0) || y % 400 == 0 ) {} // AND, OR연산에서는 AND가 우선순위
5) char형 변수 ch가 영문자 'Y'나 'y'가 아닐 때 true인 조건식
if ( ch !='Y' && ch !='y' ) {}
6) char형 변수 ch가 영문자일 때 true인 조건식
if ( (ch>='A' && ch<='Z') || (ch>='a' && ch<='z')) {}
if ( ch>='A' && ch<='z' ) 는 안됌. 65~90, 97~122이므로 중간에 7개는 영문자 아닌 값들이 존재

7) char형 변수 ch가 영문자가 아닐 때 true인 조건식
// if ( (ch<'A'&& ch>'Z' && ch<'a' && ch>'z') )
if ( !(ch >= 'A' && ch <= 'Z') && !(ch >= 'a' && ch <= 'z') ) 
8) boolean형 변수 b가 false일 때 true인 조건식
if ( b == false ) {}
if ( ! b){}

위를 출력하기.

 

1~10까지 출력하고 줄을 바꾸고

2~11까지 출력하고 줄을 바꾸고.

.

.

.

10개의 행

 

for ( int n=1 ; n<=10 ; n++) {  

for ( int m=n ; m<=n+9; m++){

System.out.printf("%3d", m);

}

System.out.println();  //10개의 행 출력.

}

 

1개의 행에는 10개의 수가 있음. 첫번째수와 마지막수의 차이는 9.

 

+ Recent posts