조건문 반복문 예제

윤재열·2022년 1월 6일
0

Java

목록 보기
5/71

1.조건문.다음 문장들을 조건식으로 표현하라

#1. int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식

public class Ex1 {
    public static void main(String[] args) {
        int x=11;
        if(x>10 && x<20){
            System.out.println(x);
        }
    }
}

#2. char형 변수 ch가 공백이고 탭이 아닐 때 true인 조건식

public class Ex2 {
    public static void main(String[] args) {
        char ch ='s';
        if((ch==' ') && (ch !='\t')){
            System.out.println(ch);
        }
    }
}

#3. char형 변수 ch가 'x' 또는 'X'일 때,true인 조건식 그리고 이 외에값은 Error라고 출력하시오

public class Ex3 {
    public static void main(String[] args) {
        char ch='s';
        if((ch =='x') ||(ch =='X')){
            System.out.println(ch);
        }
        else{
            System.out.println("Error");
        }
    }
}

#4. 문자열 참조변수 str이 "yes"일 때 true인 조건식

public class Ex4 {
    public static void main(String[] args) {
        String str = "yes";
        
        if(str.equals("yes")){
            System.out.println(str);
        }
    }
}

#5. 90점이상을 A등급,80점이상을 B등급,70점이상을 C등급,그외의 점수는 F점수를 입력하시오.

public class Ex5 {
    public static void main(String[] args) {
    int score =89;

    if(score >= 90){
        System.out.println("A등급");
    }
    else if(score >= 80){
        System.out.println("B등급");
    }
    else if(score >=70){
        System.out.println("C등급");
    }
    else{
        System.out.println("F등급");
    }
    }
}

#6.주사위 번호를 뽑는 예제(Math.random()사용)

public class Ex6 {
    public static void main(String[] args) {
        int num =(int)(Math.random()*6)+1; //1~6에서 임의의 정수를 뽑는 Math.random()메서드

        if(num==1){
            System.out.println("1번 주사위");
        }
        else if(num==2){
            System.out.println("2번 주사위");
        }
        else if(num==3){
            System.out.println("3번주사위");
        }
        else if(num==4){
            System.out.println("4번주사위");
        }
        else if(num==5){
            System.out.println("5번주사위");
        }
        else{
            System.out.println("6번주사위");
        }
    }
}

반복문

2.다음의 for문을 while문으로 변경하시오.

문제

for(int dan =2; dan<=9; dan++){
	for(int times =1;times<+9; times++){
    System.out.println(dan + "*" + times + "+" + dan*times);
    }
    }

package exercise;

public class Ex2 {
    public static void main(String[] args) {
        int dan =2;
        while(dan<=9){
            int times =1;
            while(times<=9){
                System.out.println(dan + "*" + times + "+" + dan*times);
                times++;
            }
            dan++;
            System.out.println();
        }
    }
}

3.두개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하시오.

package exercise;

public class Ex3 {
    public static void main(String[] args) {
        for(int dice1 =1; dice1<=6; dice1++){
            for(int dice2=1; dice2<=6; dice2++){
                if(dice1+dice2==6)
                System.out.println("(" + dice1 + "," + dice2 + ")");
            }
            System.out.println();
        }
    }
}

4.방정식 2x+4y =10의 모든 해를 구하시오.(x,y는0이상,10이하 정수이다.)

package exercise;

public class Ex4 {
    public static void main(String[] args) {
        for(int x=0; x<=10; x++){
            for(int y =0; y<=10; y++){
                if(2*x+4*y==10){
                    System.out.println("x: " + x + "," + "y: " + y);
                    break; //x는 1,y는 2일때,y에 3부터10까지 반복하는것은 무의미하기때문에 break를 한다.
                }
            }
        }
    }
}

5.사용자로부터 두개의 정수(시작,끝)를 입력받아 시작(포함)해서 끝(포함)까지 곱을 출력하는 프로그램을 작성하시오.

	package exercise;

import java.util.Scanner;

public class ex5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("첫번째 숫자를 입력하세요.");
        int start = sc.nextInt();
        System.out.println("마지막 숫자를 입력하세요");
        int end = sc.nextInt();

        int sum = 1;
        if (start < end) {
            for (int i = start; i <= end; i++) {
                sum *= i;
            }
        }
        if (start > end) {
            for (int i = end; i <= start; i++) {
                sum *= i;
            }
        }


        System.out.println("start에서 end까지의 정수를 곱하면" + sum + "입니다.");
    }
}

6. 1+(1+2)+(1+2+3)(1,2,3,4,5,6,7,8,9,10)의 결과를 계산하시오.

package exercise;

public class Ex6 {
    public static void main(String[] args) {
      
        int sum=0;
        for(int i=1; i<=10; i++ ){	//i=1일때,j=1출력,
           for(int j=1; j<i+1; j++){	//i=2일때,j=1,2출력 
               sum +=j;
           }
        }
        System.out.println(sum);
    }
}

7. 1+(-2)+3+(-4)+와 같은 식으로 계속하여 더해나갔을 때,몇까지 더해야 총합이 100이상이 되는지 구하시오.

package exercise;

public class Ex7 {
    public static void main(String[] args) {

        int num;
        int sum=0;

        for(num=1; sum<100; num++) { 
            if (num % 2 == 0) {	//num이 양수면 값만큼 -num한다.
                sum -= num;
            } else {
                sum += num;	//그외에 홀수는 값만큼 +num한다.
            }
        }
           ; System.out.println(num);	//200
            System.out.println(sum);	//100(총합이 100일때 해당하는 num은200)
        }

8.사용자로부터 입력받은 정수의 각 자리의 합을 더한 결과를 출력하는 프로그램을 작성하시오.

package exercise;
import java.util.Scanner;
public class Ex8 {
    public static void main(String[] args) {
        int num=0;
        int sum=0;
        Scanner sc = new Scanner(System.in);
        System.out.println("숫자를 입력하세요.");
        num =sc.nextInt();

        while(num!=0){
            sum += num%10; //num에 정수625를 입력했다고 가정하면,처음 sum에 5가 입력
            num/=10;	//625에서 10을 나눈 몫은 62가 되고 자연히 sum에 2,6순으로 반복된다.

        }
        System.out.println("각자리수에 대한합은: " +sum  +"입니다."); 	//num=625일때,sum=13;
        sc.close();
    }
}

9. 피보나치(Fibonnaci)수열은 앞의 두수를 더해서 다음수를 만들어 나가는 수열이다. 예를들어 앞의 두 수가1과 1이라면 그다음 수는 2가 되고 그다음수는 1과 2를 더해서 3이되서,1,1,2,3,5,8,13,21~~과 같은 식으로 진행된다. 1과 1부터 시작하는 수열의 10번째 수는 무엇인지 계산하는 프로그램을 작성하시오.

package exercise;

public class Ex9{
    public static void main(String[] args) {
        int num1=1;	//첫째항은1로정해져있다.
        int num2=1;	//두번째항도 1로 정해져있다.
        int num3=0;	//세번째항은 출력값이므로 0으로 지정.
        System.out.print(num1 + "," + num2); 

        for(int i=0; i<=7; i++){	//1,2번째 항은 1로 정해져있으므로 8개항만 구하면 된다.
            num3=num1+num2;	 	
            num1=num2;	//num2->num1로 입력;
            num2=num3;	//num3->num2로 입력;
            System.out.print("," + num3);
        }

    }
}
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글