条件文重複文の例


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.サイコロを2つ投げるときは、目と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.方程式2 x+4 y=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.ユーザから2つの整数(開始、終了)を入力し、開始(含む)から終了(含む)まで積を出力するプログラムを作成する.
	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.フィボナッチ数列は、最初の2つの数を加算し、次の数を生成する数列である.例えば、前の2つの数が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);
        }

    }
}