Java ひよこ演習問題

Java

変数&演算子&定数

1. int型の変数xに10を代入し、xの値を出力するプログラムを作成せよ。
2. double型の変数yに3.14を代入し、yの値を出力するプログラムを作成せよ。
3. String型の変数nameに「Bing」という文字列を代入し、nameの値を出力するプログラムを作成せよ。
4. int型の変数aとbにそれぞれ10と20を代入し、aとbの和を出力するプログラムを作成せよ。
5. double型の変数cとdにそれぞれ3.14と2.71を代入し、cとdの積を出力するプログラムを作成せよ。
6. char型の変数eに’R’を代入し、出力するプログラムを作成せよ。
7. int型の変数fに10を代入し、fを3で割ったときの余りを出力するプログラムを作成せよ。
8. boolean型の変数gにtrueを代入し、gを出力するプログラムを作成せよ。
9. int型の変数hに10を代入し、hに1を加えた値を出力するプログラムを作成せよ。
10. int型の変数iに10を代入し、iに1を減じた値を出力するプログラムを作成せよ。
11. int型の定数 LUCKY を777で初期化して表示するプログラムを作成せよ。
//1
public static void main(String[] args) { 
	int x = 10;
	System.out.println(x);
}

//2
public static void main(String[] args) { 
	double y = 3.14;
	System.out.println(y);
}
//3
public static void main(String[] args) { 
    String name = "Bing";
    System.out.println(name);
}
//4
public static void main(String[] args) { 
    int a = 10;
	int b = 20;
    System.out.println(a+b);
}
//5
public static void main(String[] args) { 
    double c = 3.14;
	double d = 2.71;
    System.out.println(c*d);
}
//6
public static void main(String[] args) { 
    char e = 'R';
    System.out.println(e);
}
//7
public static void main(String[] args) { 
    int f = 10;
    System.out.println(f%3);
}
//8
public static void main(String[] args) { 
    boolean g = true;
    System.out.println(g);
}
//9
public static void main(String[] args) { 
    int h = 10;
	h++;
    System.out.println(h);
}
//10
public static void main(String[] args) { 
    int i = 10;
	i--;
    System.out.println(i);
}
//11
public static void main(String[] args) { 
    final int LUCKY = 777;
    System.out.println(LUCKY);
}

評価順序と結合則

以下の処理を実行結果を頭の中で考えた後、実際に実行してみて答えを確認すること

1. System.out.println(4+2*5)と記述するとどのような数値が出力されるか?
2. System.out.println(10/2*3)と記述するとどのような数値が出力されるか?
3. System.out.println(10*2/4)と記述するとどのような数値が出力されるか?
4. System.out.println(10%3*2)と記述するとどのような数値が出力されるか?
5. System.out.println(10*3%4)と記述するとどのような数値が出力されるか?
6. System.out.println(10+3*2-4)と記述するとどのような数値が出力されるか?
7. System.out.println(10+2*4+5.0)と記述するとどのような数値が出力されるか?
8. System.out.println(10/2.0)と記述するとどのような数値が出力されるか?
9. System.out.println(3*4+”Hello”)と記述するとどのような数値が出力されるか?
10. System.out.println(“Hello”+3+4+"World")と記述するとどのような文字列が出力されるか?

条件式

1. int型の変数xに10を代入し、xが5より大きい場合「xは5より大きいです」と出力するプログラムを作成せよ。
2. int型の変数yに5を代入し、yが10より小さい場合「yは10より小さいです」と出力するプログラムを作成せよ。
3. int型の変数aに10を代入し、aが10である場合「aは10です」と出力するプログラムを作成せよ。
4. int型の変数bに10を代入し、bが10でない場合「bは10ではありません」と出力するプログラムを作成せよ。
5. int型の変数cに10を代入し、cが10以上の場合「cは10以上です」と出力するプログラムを作成せよ。
6. int型の変数dに10を代入し、dが10未満の場合「dは10未満です」と出力するプログラムを作成せよ。
7. int型の変数eに10を代入し、eが10以下の場合「eは10以下です」と出力するプログラムを作成せよ。
8. int型の変数fに10を代入し、fが10より大きく20以下の場合「fは10より大きく20以下です」と出力するプログラムを作成せよ。
9. int型の変数gに10を代入し、gが0未満または100より大きい場合「gは0未満または100より大きいです」と出力するプログラムを作成せよ。
10. String型の変数zに”Hello”を代入し、zが”Hello”である場合「zはHelloです」と出力するプログラムを作成せよ。
//1
public static void main(String[] args) { 
	int x = 10;
 	if(x > 5){
		System.out.println("xは5より大きいです。");
	}
}

//2
public static void main(String[] args) { 
	int y = 5;
	if(y < 10){
		System.out.println("yは10より小さいです。");
	}
}
//3
public static void main(String[] args) { 
    int a = 10;
    if(a == 10){
        System.out.println("aは10です。");
    }
}
//4
public static void main(String[] args) { 
    int b = 10;
    if(b != 10){
        System.out.println("bは10ではありません。");
    }
}
//5
public static void main(String[] args) { 
    int c = 10;
    if(c >= 10){
        System.out.println("cは10以上です。");
    }
}
//6
public static void main(String[] args) { 
    int d = 10;
    if(d < 10){
        System.out.println("dは10未満です。");
    }
}
//7
public static void main(String[] args) { 
    int e = 10;
    if(e <= 10){
        System.out.println("eは10以下です。");
    }
}
//8
public static void main(String[] args) { 
    int f = 10;
    if(f >10 && f <= 20){
        System.out.println("fは10より大きく20以下です。");
    }
//9
public static void main(String[] args) { 
    int g = 10;
    if(g < 0 || g > 100){
        System.out.println("gは0未満または100より大きいです。");
    }
}
//10
public static void main(String[] args) { 
    String z ="Hello";
    if(z.equals("Hello")){
        System.out.println("zはHelloです");
    }
}

Random

1. 0~5のランダムな整数を生成し、int型変数xに代入し出力せよ。
2. 10000~20000のランダムな整数を生成し、int型変数xに代入し出力せよ。
3. -10~20のランダムな整数を生成し、int型変数xに代入し出力せよ。
//1
public static void main(String[] args) {
		int x = new java.util.Random().nextInt(6);
		System.out.println(x);
}
//2
public static void main(String[] args) {
		int x = new java.util.Random().nextInt(20000-10000+1)+10000;
		System.out.println(x);
}
//3
public static void main(String[] args) {
		int x = new java.util.Random().nextInt(20-(-10)+1)-10;
		System.out.println(x);
}

指定範囲の乱数は
乱数の最小の値をmin
乱数の最大の値をmax
としたとき
Random().nextInt(max-min+1)+min
とすることで求められる

Scanner

1. キーボードから整数を受け取りint型変数xに代入し、xを出力する処理を作成せよ。
2. キーボードから小数を受け取りdouble型変数yに代入し、yを出力する処理を作成せよ。
3. キーボードからappleなどの単語を受け取りString型変数sに代入しsを出力する処理を作成せよ。
4. キーボードから「山田 太郎」などの空白を含む1行を受け取りString型変数sに代入しsを出力する処理を作成せよ
	//1
	public static void main(String[] args) {
		int x = new java.util.Scanner(System.in).nextInt();
		System.out.println(x);
	}
	//2
	public static void main(String[] args) {
		double y = new java.util.Scanner(System.in).nextDouble();
		System.out.println(y);
	}
	//3
	public static void main(String[] args) {
		String s = new java.util.Scanner(System.in).next();
		System.out.println(s);
	}
	//4
	public static void main(String[] args) {
		String s = new java.util.Scanner(System.in).nextLine();
		System.out.println(s);
	}


if文

int型変数xに20を代入し、xが正の値なら正、負の値なら負、0ならば0と出力する処理を作成せよ
[実行例]
正
	
	public static void main(String[] args) {
		int x = 20;
		if(x > 0) {
			System.out.println("正");
		}else if(x < 0) {
			System.out.println("負");
		}else {
			System.out.println(0);
		}
}

switch文

ランダムに1~6を生成しint型変数 nに代入。
そのnをswitch分岐させ、nが1,2だったらSuperLucky,3だったらLucky,
それ以外はBooと表示する処理を作成せよ。
public class Main{
	public static void main(String[] args){
		int n = new java.util.Random().nextInt(6)+1;
		String msg;
		switch(n) {
			case 1,2->{
				msg="SuperLucky";
			}
			case 3->{
				msg="Lucky";
			}
			default->{
				msg="Boo";
			}
		}
		System.out.println(msg);
	}
}

Java12以降はswitch式が使えるようになった。

public class Main{
	public static void main(String[] args){
		int n = new java.util.Random().nextInt(6)+1;
		String msg =switch(n) {
			case 1,2-> "SuperLucky"; 
			case 3-> "Lucky"; 
			default -> "Boo"; 
		};
		System.out.println(msg);
	}
}

switch式の場合、defaultは必須となる。省略して以下のように書くとコンパイルエラーが発生するので注意

public class Main{
	public static void main(String[] args){
		int n = new java.util.Random().nextInt(6)+1;
		String msg =switch(n) {
			case 1,2-> "SuperLucky"; 
			case 3-> "Lucky"; 
			case 4,5,6 -> "Boo"; 
		};
		System.out.println(msg);
	}
}

while文

サイコロを繰り返し振り、6が出るまで繰り返す処理を作成せよ。最後にENDと出力すること
[実行例]
3
2
5
6
END

while(true)で無限ループを作って、条件を満たしたらbreakで抜けるという方法は人間の思考に近くわかりやすいのでおすすめだ。

public class Main{
	public static void main(String[] args){
		while(true){
			int dice = new java.util.Random().nextInt(6)+1;
			System.out.println(dice);
			if(dice == 6){
				break;
			}
		}
		System.out.println("END");
	}
}

while(true)を使わないで解く場合は以下のdo~whileがよい。
do~whileは一回はループないが実行されることが保証されている構文なので
diceに初期値をいれなくても実行できる。

	public static void main(String[] args) {
		int dice;
		do{
			dice = new java.util.Random().nextInt(6)+1;
			System.out.println(dice);
		}while(dice != 6);
		System.out.println("END");
	}

同じようでもこれをwhile文で記述すると[変数が初期化されていない可能性があります]というコンパイルエラーが発生するので注意。この場合は
int dice = 0;
のようにdiceの初期化が必要となる

public static void main(String[] args) {
		int dice = 0;
		while(dice != 6){
			dice = new java.util.Random().nextInt(6)+1;
			System.out.println(dice);
		}
		System.out.println("END");
	}

for文

Helloと3回繰り返し出力する処理を作成せよ。
[実行例]
Hello
Hello
Hello
	public static void main(String[] args) {
		for(int i=0;i<3;i++) {
			System.out.println("Hello");
		}
	}
Java
スポンサーリンク
シェアする
mjpurinをフォローする

コメント

タイトルとURLをコピーしました