演算子と式

17417 ワード

1.2つの整数変数に対して除算、型取り、自己加算を行う
(1)プロジェクトMyProject 2でDivModDemoクラスを作成する.
(2)コードエディタに次のコードを入力します.
/**
 * 
 */

/**
 * @author solo
 *
 */
public class DivModDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a=8,b=5;
        System.out.println(a+"/"+b+"="+a/b);
        System.out.println(a+"/"+(-b)+"="+a/-b);
        System.out.println(-a+"/"+b+"="+-a/b);
        System.out.println(-a+"/"+(-b)+"="+(-a)/(-b));
        System.out.println(a+"%"+b+"="+a%b);
        System.out.println(a+"%"+(-b)+"="+a%-b);
        System.out.println(-a+"%"+b+"="+(-a)%b);
        System.out.println(-a+"%"+(-b)+"="+-a%-b);
        System.out.println(++a+"+"+b+"="+(++a)+b);
        System.out.println(a+++"+"+(-b)+"="+--a+-b);
        System.out.println(-++a+"+"+b+"="+-++a+b);
        System.out.println(-a+++"+"+(-b)+"="+-a+++-b);
        System.out.println(a);
    }

}

(3)プログラムを実行してデバッグし,DivModDemoクラスの実行結果を観察する.
2.バイナリの移動アルゴリズム
(1)プロジェクトMyProject 2にBitShiftDemoクラスを作成する.
(2)コードエディタに次のコードを入力します.
/**
 * 
 */

/**
 * @author solo
 *
 */
public class BitShiftDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a=-16,b=16;
        System.out.println("******************************");
        System.out.println("a :"+Integer.toBinaryString(a));
        System.out.println("a 1 "+Integer.toBinaryString(a<<1));
        System.out.println(a+"<<2="+(a<<2));
        System.out.println("******************************");
        System.out.println("a :"+Integer.toBinaryString(a));
        System.out.println("a 1 "+Integer.toBinaryString(a>>1));
        System.out.println(a+">>2="+(a>>2));
        System.out.println("******************************");
        System.out.println("a :"+Integer.toBinaryString(a));
        System.out.println("a 1 "+Integer.toBinaryString(a>>>1));
        System.out.println(a+">>>2="+(a>>>2));
        System.out.println("******************************");
        System.out.println("b :"+Integer.toBinaryString(b));
        System.out.println("b 1 "+Integer.toBinaryString(b<<1));
        System.out.println(b+"<<2="+(b<<2));
        System.out.println("******************************");
        System.out.println("b :"+Integer.toBinaryString(b));
        System.out.println("b 1 "+Integer.toBinaryString(b>>1));
        System.out.println(b+">>2="+(b>>2));
        System.out.println("******************************");
        System.out.println("b :"+Integer.toBinaryString(b));
        System.out.println("b 1 "+Integer.toBinaryString(b>>>1));
        System.out.println(b+">>>2="+(b>>>2));
        System.out.println("******************************");
    }

}

(3)プログラムを実行してデバッグし,結果を観察する.
ヒント:整形変数をバイナリに変換する文字にはIntegerを使用します.toBinaryString()完了、バイナリ左シフト<、右シフト>>完了.>>は符号なし右シフト演算子で、変数値が右シフトした後、左側に0を補います.
3.関係演算と論理演算の混合演算
(1)プロジェクトMyProject 2にOperationDemoクラスを作成する.
(2)コードエディタに次のコードを入力します.
/**
 * 
 */

/**
 * @author solo
 *
 */
import java.io.*;
public class OperationDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a=25,b=3;
        boolean d=a<b;
        System.out.println(a+"<"+b+"="+d);
        int e=3;
        d=(e!=0&&a/e>5);
        System.out.println(e+"!=0&&"+a+"/"+e+">5="+d);
        int f=0;
        d=(f!=0&&a/f>5);
        System.out.println(f+"!=0&&"+a+"/"+f+">5="+d);
        d=(f!=0&&a/f>5);
        System.out.println(f+"!=0&&"+a+"/"+f+">5="+d);
    }

}

(3)観察プログラムの実行結果を実行してデバッグする.
4.キーボードから2つの整数を入力し、次のプログラムで2つの整数の和を計算し、演算結果を出力します.
/**
 * 
 */

/**
 * @author solo
 *
 */
import java.io.*;
public class MySumDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num1,num2,sum;
        String str="";
        BufferedReader buf;
        buf=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Input the first integer:");
        try
        {
            str=buf.readLine();
        }
        catch(Exception e)
        {
            
        }
        num1=Integer.parseInt(str);
        System.out.print("Input the second integer:");
        try
        {
            str=buf.readLine();
        }
        catch(Exception e)
        {
            
        }
        num2=Integer.parseInt(str);
        sum=num1+num2;
        System.out.println("The sum is "+sum);
    }

}

5.キーボードから円の半径を入力し、円の面積を求めて結果を出力するプログラムを作成します.
/**
 * 
 */

/**
 * @author solo
 *
 */
import java.io.*;
public class CircleArea {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double area;
        int radius;
        Circle1 circle=null;
        String str="";
        BufferedReader buf;
        buf=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Input the radius:");
        try
        {
            str=buf.readLine();
        }
        catch(Exception e)
        {
            
        }
        radius=Integer.parseInt(str);
        circle=new Circle1(radius);
        area=circle.getArea();
        System.out.println(" :"+area);
    }

}
class Circle1{
    double radius,area;
    Circle1(double r){
        radius=r;
    }
    double getArea(){
        area=3.14159265*radius*radius;
        return area;
    }
}

6.次のプログラムをデバッグし、プログラムの実行結果を分析します.
/**
 * 
 */

/**
 * @author solo
 *
 */
public class SanmuTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int iBig=2;
        int iSmall=1;
        boolean result=(iBig>=iSmall)?true:false;
        System.out.println("Result Is:"+result);
    }

}