소수 ? 1과 자기자신의 수로만 나눠지는 수. (1제외)

int cnt=0; // 한 줄에 10개씩 출력하기 위한 변수

 

jump:

for(int n=2; n=100; n++) { //2부터 시작해서 100까지 

for(int i=2; i<=(n/2); i++){ //

if(n%i==0){ //2로 나누어 떨어지거나 어떤수의 배수로 나눴을때 0이면 소수가 아니기 때문에 다시 첫 번째 for문으로 감.

// 

continue jump;

}

}

System.out.printf("%4d", n); //4칸으로 출력해라.

if(++cnt%10 == 0) {

System.out.println();

}

}

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();

 

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