オブジェクト指向に入る前に基礎力をUPしておこう。
Q1
二つの整数を入力し、商を求める。もし、あまりがある場合は…の後にあまりを出力すること。
[実行結果]
x:>7 |
y:>3 |
7÷3=2...1 |
01 | import java.util.Scanner; |
02 | public class Jn2_1 { |
03 |
04 | public static void main(String[] args) { |
05 | Scanner scan= new Scanner(System.in); |
06 | System.out.print( "x:>" ); |
07 | int x=scan.nextInt(); |
08 | System.out.print( "y:>" ); |
09 | int y=scan.nextInt(); |
10 | System.out.printf( "%d÷%d=%d" ,x,y,x/y); |
11 | if (x%y != 0 ){ |
12 | System.out.printf( "...%d" ,x%y); |
13 | } |
14 | System.out.println(); |
15 | scan.close(); |
16 | } |
17 | } |
Q2
実行結果のように、秒(整数)を入力すると、何時間・何分・何秒かを表示する。
分・秒の値は、10以下であっても、0を補って2桁で表示する。
[実行結果]
秒を入力>3485 |
0時間58分05秒です。 |
01 | import java.util.Scanner; |
02 | public class Q2{ |
03 | public static void main(String[] args){ |
04 | //定数はfinalをつけ大文字。単語の繋ぎ目はアンダーバー |
05 | final int SEC_OF_HOUR= 3600 ; //1時間当たりの秒 |
06 | final int SEC_OF_MIN= 60 ; //1分当たりの秒 |
07 | Scanner s= new Scanner(System.in); //スキャナーを使えるようにする。 |
08 | |
09 | int n; //ユーザーからの入力値を受け取る変数 |
10 | do { |
11 | System.out.print( "秒を入力>" ); |
12 | n=s.nextInt(); |
13 | } while (n< 0 ); //負の値が入っていたら繰り返し |
14 |
15 | //nを1時間当たりの秒で割った商が求めるhour |
16 | int hour=n/SEC_OF_HOUR; |
17 | //nを1時間当たりの秒で割った余りを1分あたりの秒で割った商が求めるmin |
18 | int min=(n%SEC_OF_HOUR)/SEC_OF_MIN; |
19 | //nを1分あたりの秒で割った余りがsec |
20 | int sec=n%SEC_OF_MIN; |
21 |
22 | //%02dで2桁分の幅を確保し空いたスペースを0で埋める |
23 | System.out.printf( "%d時間%02d分%02d秒です。" ,hour,min,sec); |
24 |
25 | } |
26 | } |
Q3
下の図のように、2つの整数と偶数・奇数の選択を入力すると、その間の偶数か奇数の合計を表示する。
大小の逆入力や、負の数にも対応するようにする。
[実行結果]
整数1を入力>10 |
整数2を入力>-4 |
偶数(1),奇数(2)を選択>2 |
-4から10までの奇数の合計は21です。 |
01 | import java.util.Scanner; |
02 | public class Jn2_3 { |
03 | public static void main(String[] args) { |
04 | //キーボード入力を使えるようにする準備(Scannerクラスのインスタンスを生成) |
05 | Scanner scan= new Scanner(System.in); |
06 | System.out.print( "整数1を入力>" ); |
07 | //とりあえずminに入れる |
08 | int min=scan.nextInt(); |
09 | System.out.print( "整数2を入力>" ); |
10 | //とりあえずmaxに入れる |
11 | int max=scan.nextInt(); |
12 | System.out.print( "偶数(1),奇数(2)を選択>" ); |
13 | //説明変数selectに入れる |
14 | int select=scan.nextInt(); |
15 | //selectが1ならばisEvenはtrue |
16 | boolean isEven=select == 1 ; |
17 | //minがmaxより大きかったら2値の入れ替え |
18 | if (min> max){ |
19 | int temp = min; |
20 | min=max; |
21 | max=temp; |
22 | } |
23 | //合計を求めるときにはsumを0で初期化するところからスタート |
24 | int sum= 0 ; |
25 | //min~maxまでの間を回すループ(端含む) |
26 | for ( int i=min;i<=max;i++){ |
27 | //(偶数選択かつ偶数)または(奇数選択かつ奇数)が加算していく数 |
28 | if ((isEven && i% 2 == 0 ) ||(!isEven && i% 2 != 0 )){ |
29 | sum+=i; |
30 | } |
31 | } |
32 | System.out.printf( "%dから%dまでの%sの合計は%dです。" , min,max,isEven ? "偶数" : "奇数" ,sum); |
33 | scan.close(); |
34 | } |
35 | } |
コメント