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