JAVAを学ぶ(5)🧑🏻‍💻


JAVA ESSENTIAL Chaper 2 Java基本プログラミング練習問題
JAvaの基礎知識

1. Summary


1.(1)Javaプログラムの構成

  • Javaプログラムは、メソッド、変数、定数を含むクラス宣言で開始します.C/C++でいうグローバル変数、グローバル関数は存在しないので、クラスにカプセル化する必要があります.
  • クラスはclassキーワードとして宣言されます.
  • 1.(2)Javaのデータ型

  • javaにはboolean、char、byte、short、int、long、float、doubleの8つの基本タイプがあります.
  • Javaには、クラスのReference、インタフェースのReference、配列のReference、の3種類のReferenceがあります.
  • 抽出タイプはC/C++ポインタに似ていますが、実際のメモリアドレスはありません.
  • 文字列はデフォルトタイプではなく、Referenceタイプです.
  • 定数finalキーワードを使用して初期値とともに宣言し、プログラムは実行時に値を変更できません.
  • からビッグデータ型に自動的に変換されます.
  • ビッグデータ型からビッグデータ型への変換は、明確に指定され、データの損失を招く可能性があります.
  • 1.(3)Javaに鍵を入力する

  • System.inはキーボードから直接入力されるJavaの標準入力ストリームオブジェクトであり,入力キーに対応するバイト情報を返す.
  • Scannerクラスを使用すると、Javaからキーストロークを簡単に受信できます.Scannerクラスは、入力したキーワードを、数値、文字、文字列など、必要なタイプに変換します.
  • スイーププログラムオブジェクトは、以下に示すように、その作成者においてシステムである.inの形で生成され、システム.inから転送されたバイトストリームをユーザに必要なデータ型に変換します.
  • Scanner scanner = new Scanner(System.in);
  • Scannerクラスを使用するには、import javaを使用してScannerクラスのフルパス名を通知します.util.Scanner;ドアが必要です.
  • 1.(4)演算子と条件文

  • Javaの演算子はC/C++とほぼ同じで、算術、増減、比較、切替、ビット、論理、条件、代入演算子を提供します.
  • java条件文には、単純if文、if-else文、マルチif-else文、ネストif-else文、switch文があります.
  • スイッチドアは、値によって複数の実行パスに分けるのに適しています.
  • のスイッチドアの場合、ブレークポイントドアが発生するまで下に進みます.
  • case文の値は、整数、アルファベット、文字列のみであり、変数または式ではありません.
  • 2.理論問題


    2.(1)Javaでクラスを宣言するときに使うキーワードは?

    class

    2.(2)次の場合に使用識別子が無効な場合をすべて選択します。

    int _i;
    int %j;           //잘못됨. '_' 와 '$'를 제외한 특수 문자는 사용할 수 없다.
    char 안녕;
    double 1var;      //잘못됨. 변수 이름에 숫자를 쓸 수 있지만 첫번째로는 올 수 없다.
    char student_ID;

    2.(3)次の各項目が表す変数を宣言する


    (1)int型変数age->int age;
    (2)値を0.25に初期化した浮動小数点数f->浮動小数点数f=0.25 f;
    (3)age値とf値の加算に初期化された二変数d->二重d=age+f;
    (4)文字「a」で初期化されたchar型変数c->char c=「a」;
    (5)自分の名前で初期化した文字列変数name->String name="KimKU";

    2.(4)次の式の結果値とタイプは?


    (1) 67 + 12.8 -> 79.8 double
    (2) 'c' + 1 -> 100 int
    (3) 10/3 -> 3 int
    (4) 10.0/3 -> 3.333... double
    (5) 10==9 -> false boolean

    2.(5)次の文を条件式で表す


    (1)aがb->a>=b以上である.
    (2)aはbより小さく、c->acより大きい.
    (3)aプラス3は10->a+3に等しくない!=10;
    (4)aが10より大きいか、b->a>10||a=bに等しい.

    2.(6)case文の値として使用できない文字は?


    (1) 10
    (2) "A"
    (3) 'A'
    (4)5.4->case文で指定した値は、整数、文字、または文字列のテキストのみを許可します.

    2.(7)20と30を加算出力50のエラープログラム

     public class SampleProgram{
     	int i;
     	int j;
     	i = 20;
     	j = 30;
     	System.out.println(i+j);
    
     }
    (1)プログラムはどのようなソースファイル名で保存しますか?
    答え:SampleProgram.java
    (2)このプログラムを修正して正常な結果を出す
    public class SampleProgram{
    	public static void main(String[] args){
    		int i;
    		int j;
    		i = 20;
    		j = 30;
    		System.out.println(i+j);
    	}
    }

    2.(8)次のコードを実行して出力する内容は?

    switch(option){
    	case 1: System.out.println("옵션 1");
    	case 2: System.out.println("옵션 2");
    	case 3: System.out.println("옵션 3"); break;
    	default: System.out.println("해당 없음");
    }
    (1)オプションが1の場合->オプション1オプション2オプション3
    (2)オプションが2の場合->オプション2オプション3
    (3)オプションが3の場合->オプション3
    (4)オプションが4の場合->適用されません

    2.(9)3つの条件演算子を使用して、次の条件文を1行に書きます。

    if(j%2 == 0) i =10;
    else i = 20;
    答:int i=(j%2=0)?10 : 20;

    2.(10)次のif-elseドアをスイッチドアに変更する

    if(i == 1)
    	System.out.println("!");
    if(i == 2)
    	System.out.println("@");
    if(i == 3)
    	System.out.printfln("#")
    else
    	System.out.println("*");
    switch(i) {
        case 1 : System.out.println("1"); break;
        case 2 : System.out.println("@"); break;
        case 3 : System.out.println("#"); break;
        default : System.out.println("*");
    }

    3.実習問題


    3.(1)2つの整数加算出力を入力するプログラム

    import java.util.Scanner;
    public class prca {
      public static void main(String[] args){
          Scanner scanner = new Scanner(System.in);
          System.out.println("두 정수를 입력하세요 >> ");
    
          int a, b;
          a = scanner.nextInt();
          b = scanner.nextInt();
    
          System.out.println(a+b);
      }
    }
    

    3.(2)1階の高さ5 mを入力し、何階建てで、出力高さ

    import java.util.Scanner;
    public class prca {
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
    
            System.out.println("몇 층인지 입력하세요");
    
            int a;
            a = scanner.nextInt();
    
            System.out.println(a*5 + "m 입니다.");
        }
    }

    3.(3)x値入力を受け、y=x^2-3 x+7を計算し、y値を出力する

    import java.util.Scanner;
    public class prca {
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
    
            System.out.println("x 값을 입력하세요>> ");
    
            int x, y;
            x = scanner.nextInt();
            y = x*x -3*x + 7;
    
            System.out.println("x= " + x + ", y= " +y);
    
        }
    }

    3.(4)2次元平面上で、1つの矩形を2点で表す。(50,50)と(100100)の2点からなる矩形がある。点を構成する整数xとyを入力し、矩形内に定点(x,y)があるかどうかを確認するプログラム。

    import java.util.Scanner;
    public class prca {
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
    
            System.out.println("점 (x, y)의 좌표를 입력하세요>>");
    
            int x, y;
    
            x = scanner.nextInt();
            y = scanner.nextInt();
    
            if(x >= 50 && x <= 100 && y >= 50 && y <= 100)
                System.out.println("점(" + x + ", " + y + ")은 (50, 50)과 (100, 100)의 사각형 내에 있습니다.");
            else
                System.out.println("점(" + x + ", " + y + ")은 (50, 50)과 (100, 100)의 사각형 내에 없습니다.");
        }
    }

    3.(5)プログラム作成、論理演算ANDとOR出力結果入力

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("논리 연산을 입력하세요>>");
    
    		boolean a = sc.nextBoolean();
    		String operator = sc.next();
    		boolean b = sc.nextBoolean();
    
    		switch (operator) {
    		case "AND":
    			System.out.println(a&b);
    			break;
    		case "OR":
    			System.out.println(a||b);
    			break;
    
    		default:
    			System.out.println("잘못된 입력입니다.");
    			break;
    		}
    
    	}	
    }

    3.(6)お金の額を入力し、5万円券、1万円券、1000円券、500円、100円、10円、1円硬貨の数個をプリントアウトする

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("돈의 액수를 입력하세요>>");
    
    		int money = sc.nextInt();
    		
    		System.out.print("오만원권"+money/50000+"개, ");
    		money %= 50000;
    		System.out.print("만원"+money/10000+"개, ");
    		money %= 10000;
    		System.out.print("천원"+money/1000+"개, ");
    		money %= 1000;
    		System.out.print("500원"+money/500+"개, ");
    		money %= 500;
    		System.out.print("100원"+money/100+"개, ");
    		money %= 100;
    		System.out.print("10원"+money/10+"개, ");
    		money %= 10;
    		System.out.println("1원"+money+"개");
    	}	
    }

    3.(7)単位がA、Bが「Excellent」C、Dが「Good」、単位がFが「Bye」の番組

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("돈의 액수를 입력하세요>>");
    
    		String grade = sc.next();
    		
    		switch (grade) {
    		case "A": case "B":
    			System.out.println("Excellent");
    			break;
    		case "C": case "D":
    			System.out.println("Good");
    			break;
    		case "F": 
    			System.out.println("Bye");
    			break;
    		default:
    			System.out.println("잘못 입력하엿습니다.");
    			break;
    		}
    	}	
    }

    3.(8)飲み物の種類とカップ数を入力して価格を知らせる手順。エスプレッソ2000ウォン、アメニティ2500ウォン、カプチーノ3000ウォン、カフェラテ3500ウォン

    //if문                                                     
    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("커피를 주문하세요>>");
    
    		String coffee = sc.next();
    		int Quantity = sc.nextInt();
    
    		if(coffee.equals("에스프레소"))
    			System.out.println(2000*Quantity+"원입니다.");
    		else if(coffee.equals("아메리카노"))
    			System.out.println(2500*Quantity+"원입니다.");
    		else if(coffee.equals("카푸치노"))
    			System.out.println(3000*Quantity+"원입니다.");
    		else if(coffee.equals("카페라떼"))
    			System.out.println(3500*Quantity+"원입니다.");
    		else
    			System.out.println("잘못 입력하엿습니다.");
    
    	}
    }	
    
    //switch문
    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("커피를 주문하세요>>");
    
    		String coffee = sc.next();
    		int Quantity = sc.nextInt();
    		
    		switch (coffee) {
    		case "에스프레소":
    			System.out.println(2000*Quantity+"원입니다.");
    			break;
    		case "아메리카노": 
    			System.out.println(2500*Quantity+"원입니다.");
    			break;
    		case "카푸치노": 
    			System.out.println(3000*Quantity+"원입니다.");
    			break;
    		case "카페라떼": 
    			System.out.println(3500*Quantity+"원입니다.");
    			break;
    		default:
    			System.out.println("잘못 입력하엿습니다.");
    			break;
    		}
    	}	
    }

    3.9369ゲーム

    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("1~99 사이의 정수를 입력하세요>>");
    
    		int num = sc.nextInt();
    		
    		int first = num/10;
    		int second = num%10;
    		int cnt = 0;
    		
    		if(first == 3 || first == 6 || first == 9) cnt++;
    		if(second == 3 || second == 6 || second == 9) cnt++;
    		
    		switch (cnt) {
    		case 0: System.out.println("박수없음"); break;
    		case 1: System.out.println("박수짝"); break;
    		case 2: System.out.println("박수짝짝"); break;
    		default:
    			break;
    		}
    	}
    }	  

    練習問題8番のお兄さんコーヒーの値段は同じですが、エスプレッソを10杯以上注文すると5%割引になります。

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("커피를 주문하세요>>");
    
    		String coffee = sc.next();
    		int Quantity = sc.nextInt();
    		
    		switch (coffee) {
    		case "에스프레소":
    			int sum = 2000*Quantity;
    			if(Quantity >= 10) sum *= 0.95;
    			System.out.println(sum+"원입니다.");
    			break;
    		case "아메리카노": 
    			System.out.println(2500*Quantity+"원입니다.");
    			break;
    		case "카푸치노": 
    			System.out.println(3000*Quantity+"원입니다.");
    			break;
    		case "카페라떼": 
    			System.out.println(3500*Quantity+"원입니다.");
    			break;
    		default:
    			System.out.println("잘못 입력하엿습니다.");
    			break;
    		}
    	}	
    }