-
do-while문 / for문 / 별찍기 / 가위바위보프로그래밍/JAVA 자바 2021. 7. 9.반응형
do - while 문
package ex0708; public class Ex01_do_while { public static void main(String[] args) { // TODO Auto-generated method stub int s,n; s=n=0; do { n++; s+=n; } while(n<100); System.out.println(n + ","+ s); } } // while과 다른건 조건이 밑에있다. // while -> while이 참일 동안 괄호 안의 내용을 반복해라 // do while -> do의 괄호 내용을 반복해라 while이 참일 동안
package ex0708; public class Ex02_do_while { public static void main(String[] args) { // while 과 do while의 차이 int a = 10; while(a<10) { a++; } System.out.println("a:"+a); int b = 10; do { b++; }while(b<10); //세미콜론 붙임 System.out.println("b:"+b); } }
do while문 이용해서
2~9사이의 수를 입력 받아 입력 받은 수의 구구단 구하기
2~9외의 수는 다시 입력하기package ex0708; import java.util.Scanner; public class Ex03_do_while { public static void main(String[] args) { // 2~9사이의 수를 입력 받아 입력 받은 수의 구구단 구하기 // 2~9외의 수는 다시 입력하기 Scanner sc = new Scanner(System.in); int dan; int n; /* System.out.println("단 입력 : "); dan = sc.nextInt(); while(dan<2 || dan>9) { System.out.println("단 입력 : "); dan = sc.nextInt(); } */ //while은 조건이 만족하지 않으면 한번도 실행하지 않음 //do while은 한번 실행하고 조건을 봄 do { System.out.println("단 입력 : "); dan = sc.nextInt(); } while(dan<2 || dan>9); n = 0; while(n<9) { n++; System.out.printf("%d * %d = %d\n", dan, n, dan*n); } sc.close(); } }
do while문은 아니지만
while문으로 구구단 가로로 출력 해보기
package ex0708; public class Testttttt { public static void main(String[] args) { // TODO Auto-generated method stub int dan,n; n=0; while(n<9) { n++; dan=2; while(dan<=9) { System.out.printf("%d * %d = %2d\t",dan,n,dan*n); dan++; } System.out.println(); } } }
난수를 발생시켜 보자
(int)(Math.random()*100+1); //1~100까지 숫자를 랜덤으로 생성하는 내장 함수
package ex0708; import java.util.Scanner; public class Ex06_Q6 { public static void main(String[] args) { // 1~100사이 난수를 발생시켜 몇번에 맞추는지 출력 Scanner sc = new Scanner(System.in); int com, user, cnt; com = (int)(Math.random()*100+1); cnt=0; while(true) { System.out.print("수 ? "); user = sc.nextInt(); cnt++; if(com==user) { System.out.println(cnt + "번만에 성공"); break; }else if(com > user) { System.out.println("입력된 수보다 큼"); }else { System.out.println("입력된 수보다 적음"); } } sc.close(); } }
for문의 기본 골자
package ex0708; public class Ex09_for { public static void main(String[] args) { // TODO Auto-generated method stub /* int n,s; for(n=1, s=0; n<=10; s+=n, n++);//초기화 및 증감식은 ,콤마로 여러문장 기술 가능 System.out.println(n+","+s); */ int n,s; n=1; s=0; for(; ;) { //증가식에 아무것도 없으면 무한 루프 s+=n; n++; if(n>10) break; } System.out.println(n+","+s); } }
정수 입력 받아 1에서 입력 받은 수까지 합 구함
package ex0708; import java.util.Scanner; public class Ex12_for { public static void main(String[] args) { // 정수 입력 받아 1에서 입력 받은 수까지 합 구함 Scanner sc = new Scanner(System.in); int num,s; do { System.out.println("수 : "); num = sc.nextInt(); } while(num<1 || num >1000); s=0; for(int n=1; n<=num; n++) { s+=n; } System.out.printf("1~%d까지 합 : %d\n", num, s); sc.close(); } }
1~9 사이의 정수를 입력받아 입력 받은 수의 구구단 출력
package ex0708; import java.util.Scanner; public class Ex13_for { public static void main(String[] args) { // 1~9 사이의 정수를 입력받아 입력 받은 수의 구구단 출력 Scanner sc = new Scanner(System.in); int dan; do { System.out.println("정수 입력: "); dan = sc.nextInt(); } while(dan<1 || dan>9); for(int n = 1; n<=9; n++) { System.out.printf("%d * %d = %d\n",dan,n,dan*n); } sc.close(); } }
10개의 정수를 입력 받아 입력 받은 정수 중 짝수 갯수와 홀수 갯수를 출력
package ex0708; import java.util.Scanner; public class Ex14_for { public static void main(String[] args) { // 10개의 정수를 입력 받아 입력 받은 정수 중 짝수 갯수와 홀수 갯수를 출력 Scanner sc = new Scanner(System.in); int input; int even, odd; even = odd = 0; System.out.println("10개의 정수 입력 : "); for(int n=1; n<=10; n++) { input = sc.nextInt(); if(input%2==0) { even++; }else { odd++; } } System.out.printf("짝수의 개수 : %d, 홀수의 개수 : %d\n", even,odd); sc.close(); } }
10개의 정수를 입력 받아 입력 받은 정수 중 카장 큰 값을 출력해라
package ex0708; import java.util.Scanner; public class Ex15_for { public static void main(String[] args) { // 10개의 정수를 입력 받아 입력 받은 정수 중 카장 큰 값을 출력해라 Scanner sc = new Scanner(System.in); int input; int max=0; System.out.println("10개의 정수 입력 : "); for(int n=1; n<=10; n++) { input = sc.nextInt(); if(n==1) { // 처음 입력 받은 경우 최대치방에 초기화함 max = input; } else if(max < input) { max = input; } } System.out.println(max); sc.close(); } }
10개의 정수를 입력 받아 입력 받은 정수 중 가장 작은 값을 출력해라
package ex0708; import java.util.Scanner; public class Ex16_for { public static void main(String[] args) { // 10개의 정수를 입력 받아 입력 받은 정수 중 가장 작은 값을 출력해라 Scanner sc = new Scanner(System.in); int input; int min=0; System.out.println("10개의 정수 입력 : "); for(int n=1; n<=10; n++) { input = sc.nextInt(); if(n==1) { // 처음 입력 받은 경우 최대치방에 초기화함 min = input; } else if(min > input) { min = input; } } System.out.println(min); sc.close(); } }
두 개의 정수를 입력받아 입력 받은 수중 적은 수에서 큰수 사이에 3의 배수이거나 5의 배수인 수들의 합과 평균을 구하라
package ex0708; import java.util.Scanner; public class Ex17_for { public static void main(String[] args) { // 두 개의 정수를 입력받아 입력 받은 수중 적은 수에서 큰수 사이에 3의 배수이거나 5의 배수인 수들의 합과 평균을 구하라 Scanner sc = new Scanner(System.in); int a,b,t; int tot, cnt; System.out.println("두 수 입력 : "); a = sc.nextInt(); b = sc.nextInt(); if(a>b) { t=a; a=b; b=t; } tot = cnt = 0; for(int n=a; n<=b; n++) { if(n%3==0 || n%5==0) { tot+=n; cnt++; } } System.out.println("합 : "+ tot + "평균 : "+ (tot/cnt)); sc.close(); } }
다중 for문 구구단 출력
package ex0708; public class Ex19_for { public static void main(String[] args) { // 다중 for문 구구단 출력 for(int i=2; i<=9; i++) { System.out.println("** "+i+"단 **"); for(int j=1; j<=9; j++) { System.out.printf("%d*%d=%d\n",i,j,i*j); } System.out.println("------------------"); } } }
i = 2단 3단 4단 ...
j = 1~9
5개의 정수를 입력받아 합 구하기
단 입력 받은수가 0이하이면 재입력package ex0708; import java.util.Scanner; public class Ex21_for { public static void main(String[] args) { // 5개의 정수를 입력받아 합 구하기 // 단 입력 받은수가 0이하이면 재입력 Scanner sc = new Scanner(System.in); int input=0; int s; /* s = 0; System.out.println("5개 정수 입력"); for(int n=1; n<=5; n++) { do { System.out.print(n+"번째수 : "); input = sc.nextInt(); }while(input <= 0); s+=input; } System.out.println("결과 : " + s); */ s = 0; System.out.println("5개 정수 입력"); for(int n=1; n<=5; n++) { System.out.print(n+"번째수 : "); input = sc.nextInt(); if(input <= 0) { n--; }else { s+=input; } } System.out.println("결과 : " + s); sc.close(); } }
별 찍기
package ex0708; public class Ex22_for { public static void main(String[] args) { //별 찍기 /* for(int i=1; i<=5; i++) { for(int j=1; j<=i; j++) { System.out.printf("*"); } System.out.println(); } */ /* for(int i=5; i>=1; i--) { for(int j=1; j<=i; j++) { System.out.printf("*"); } System.out.println(); } */ /* for(int i=1; i<=5; i++) { for(int j=1; j<=5-i; j++) { System.out.print(" "); } for(int j=1; j<=i; j++) { System.out.printf("*"); } System.out.println(); } */ for(int i=1; i<=5; i++) { for(int j=1; j<=5-i; j++) { System.out.print(" "); } for(int j=1; j<=i*2-1; j++) { System.out.printf("*"); } System.out.println(); } } }
첫번째 for문으로 공백을 주고
두번째 for문으로 별을 출력
공백을 첫줄에 4칸 두번째 줄 3칸 이런식으로 공백의 횟수가 늘어남
별은 그 공백 뒤에 하나씩 출력하는거임
공백4칸 + 별 한개
공백3칸 + 별 두개
공백2칸 + 별 세개
이런식으로 내려간다.
두 주사위의 눈의 합이 9가 되는 경우를 모두 출력
package ex0708; public class Ex23_for { public static void main(String[] args) { //두 주사위의 눈의 합이 9가 되는 경우를 모두 출력 for(int i = 1; i<=6; i++) { for(int j = 1; j<=6; j++) { if(i+j==9) { System.out.println(i+" "+j); } } } } }
1~10까지합, 11~20까지합, ... 91~100까지 합
package ex0708; public class Ex24_for { public static void main(String[] args) { // 1~10까지합, 11~20까지합, ... 91~100까지 합 int s; for(int i = 1; i<=100; i+=10) { //System.out.println(i+ "," + (i+9)); s = 0; for(int j=i; j<=i+9; j++) { s+=j; } System.out.printf("%d~%d까지 합 = %d\n", i, i+9, s); } } }
1~100까지 수중 4와 6의 공배수를 출력
package ex0708; public class Ex25_for { public static void main(String[] args) { // 1~100까지 수중 4와 6의 공배수를 출력 for(int i=1; i<=100; i++) { if(i%4==0 && i%6==0) { System.out.print(i+" "); } } System.out.println(); } }
5개의 정수 입력받아 7에 가장 가까운 수 출력
겹치면 먼저 입력한 수 먼저package ex0708; import java.util.Scanner; public class Ex26_for { public static void main(String[] args) { // 5개의 정수 입력받아 7에 가장 가까운 수 출력 // 겹치면 먼저 입력한 수 먼저 Scanner sc = new Scanner(System.in); int n, diff, min=0, result=0; System.out.println("5개 정수 입력"); for(int i=1; i<=5; i++) { n = sc.nextInt(); diff = n > 7 ? n - 7 : 7 - n; if(i==1 || min > diff) { min = diff; result = n; } }System.out.println(result); sc.close(); } }
방정식 3x+6y=27의 모든 해를 구하라
x,y는 정수이고 0이상 10이하임package ex0708; public class Ex27_for { public static void main(String[] args) { // 방정식 3x+6y=27의 모든 해를 구하라 // x,y는 정수이고 0이상 10이하임 for(int x=1; x<=10; x++) { for(int y=1; y<=10; y++) { if(3*x + 6*y == 27) { System.out.println(x+","+y); } } } } }
a+b+c=25 를 만족하는 한자리 자연수 abc를 모두 구해라
package ex0708; public class Ex28_for { public static void main(String[] args) { // a+b+c=25 를 만족하는 한자리 자연수 abc를 모두 구해라 for(int a=1; a<10; a++) { for(int b=1; b<10; b++) { for(int c=1; c<10; c++) if(a+b+c == 25) { System.out.println(a+"+"+b+"+"+c+"=25"); } } } } }
1-2+3-4+5-...+9-10 의 결과를 출력
앞에 수식도 나오게 해야함.package ex0708; public class Ex29_for { public static void main(String[] args) { // 1-2+3-4+5-...+9-10 의 결과를 출력 // 앞에 수식도 나오게 해야함. int s=0; for(int i =1; i<=10; i++) { if(i%2==0) { System.out.print(i+(i==10 ? " = " : " + ")); s-=i; }else { System.out.print(i+" - "); s+=i; } } System.out.println(s); } }
결과만 나오게 하는거면 삼항 연산자로도 풀 수 있음.
정수를 입력 받아 소수인지 판별
소수는 1과 자기 자신의 수로만 나누어 떨어지는 수이고, 1은 소수가 아님
소수는 2를 제외하고 모두 홀수이다. (2,3,5,7,11,13,17,19...)package ex0708; import java.util.Scanner; public class Ex30_for { public static void main(String[] args) { // 정수를 입력 받아 소수인지 판별 // 소수는 1과 자기 자신의 수로만 나누어 떨어지는 수이고, 1은 소수가 아님 // 소수는 2를 제외하고 모두 홀수이다. (2,3,5,7,11,13,17,19...) Scanner sc = new Scanner(System.in); int num; System.out.println("정수"); num = sc.nextInt(); int n=2; boolean b = true; while(n<num) { if(num%n==0) { b=false; break; } n++; } if(b&&num!=1) { System.out.println(num + "는 소수"); }else { System.out.println(num + "는 소수아님"); } sc.close(); } }
난수를 이용해서 가위바위보 하기
컴퓨터는 1~3 사이의 난수 발생 1=가위 / 2=바위 / 3=보
유저는 1~4사이의 수를 입력하고 그 외의 수는 다시 입력
1=가위 / 2=바위 / 3=보 / 4=게임종료
게임은 게임 종료 누를때까지 계속 진행package ex0708; import java.util.Scanner; public class Ex31_forQ1 { public static void main(String[] args) { // 난수를 이용해서 가위바위보 하기 // 컴퓨터는 1~3 사이의 난수 발생 1=가위 / 2=바위 / 3=보 // 유저는 1~4사이의 수를 입력하고 그 외의 수는 다시 입력 // 1=가위 / 2=바위 / 3=보 / 4=게임종료 // 게임은 게임 종료 누를때까지 계속 진행 Scanner sc = new Scanner(System.in); int com,user; while(true) { do { System.out.print("1.가위 2.바위 3.보 4.게임종료 => "); user = sc.nextInt(); if(user<1 || user>4) { System.out.println("다시 입력"); } } while(user<1 || user>4); if(user==4) { System.out.println("게임이 종료 되었습니다."); break; } com = (int)(Math.random()*3)+1; System.out.println("유저 : " + (user==1 ? "가위" : user==2 ? "바위" : "보")); System.out.println("컴 : " + (com==1 ? "가위" : com==2 ? "바위" : "보")); if(user-com == -2 || user-com == 1) { System.out.println("당신이 이겼습니다."); } else if(com==user) { System.out.println("비겼습니다."); } else { System.out.println("컴퓨터 승"); } } sc.close(); } }
반응형'프로그래밍 > JAVA 자바' 카테고리의 다른 글
배열, 2차원 배열, 여러가지 정렬 방법 (0) 2021.07.13 break문 / continue문 / 배열 (0) 2021.07.11 자바 - while 문 (0) 2021.07.07 if 조건문 / switch문 (0) 2021.07.06 문자열 마무리 / 삼항 연산자 / 비트 단위 부정 연산자 (0) 2021.07.05