Java语言程序设计 第三章 选择

3.2 boolean 数据类型、值和表达式

boolean数据类型只有两个值:true, false

设计程序判断加法是否正确:

        产生随机数:System.currentTimeMillis()%10;        //产生第一个随机数

                             System.currentTimeMillis()/10%10;        //产生第二个随机整数

public static void main(String[] args){
        int number1 = (int)(System.currentTimeMillis() % 10);
        int number2 =(int)(System.currentTimeMillis()/10 % 10);
        Scanner input = new Scanner(System.in);
        System.out.println("What is " + number1 + "+" + number2 + "?");
        int answer = input.nextInt();
        System.out.println(number1 + "+" + number2 + "=" + answer + " is " + (number1 + number2 == answer));
        
    }

3.3 if语句

设计程序:判断一个数是否是2或5的倍数(若是5倍数:输出HiFive)(若是2倍数:输出HiEven)

public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a integer:");
        int n = input.nextInt();
        if(n % 5 == 0)
            System.out.println("HiFive");
        if(n % 2 == 0)
            System.out.println("HiEven");
    }

3.6  常见错误

else总是很最近的if匹配;

两个浮点数的相等测试不可靠,例如:

double x = 1.0 -0.1-0.1-0.1-0.1-0.1

           if(x == 0.5);

简化布尔变量赋值:boolean even = number % 2 == 0;

3.7产生随机数

可以使用Math.random()来获得一个0.0~1.0之间的随机double值

获得随机0-9之间的整数:(int)(Math.random() * 10);

3.10 逻辑操作符

 !        &&        ||        ^(值相同,结果为false;值不同,结果为true)

例:

        if(number % 2 == 0 ^ numbr % 3 == 0)

                System.out.println(number + "is divisible by 2 or 3, but not both"); 

德.摩根定律可用于简化布尔表达式:

        !(condition1 && condition2)= !condition1 || !condition2

        !(condition1 || condition2) = !condition1 && !condition2

&& 和 || 为惰性操作符

3.11 示例学习:判断闰年

public class leapYear {
    public static void main(String args[]){
        Scanner input = new Scanner(System.in); 
        System.out.print("Enter a year:");
        int year = input.nextInt();
        boolean isLeapYear = (year % 4 == 0 && year % 100 != 0)||(year % 400 == 0);
        System.out.print(year + " is a leap year ?" + isLeapYear);
    }
}

3.12 示例学习:彩票

问题描述:涉及产生随机数、比较每一位数字、布尔操作符

程序随机产生一个两位数字的彩票,提示用户输入一个两位数(若是一个小于10的数,看作为0开头的两位数)

public class Lottery {
    public static void main(String args[]){
        //产生彩票 产生一个随机两位数
        int lottery = (int)(Math.random()*100);
        //获取用户输入
        System.out.println("Enter yout lottery pick:");
        Scanner input = new Scanner(System.in);
        int guess = input.nextInt();
        
        int lotteryDigit1 = lottery / 10;
        int lotteryDigit2 = lottery % 10;
        int guessDigit1 = guess / 10;
        int guessDigit2 = guess % 10;
        
        System.out.println("The lottery number is " + lottery);
        //判断中奖情况
        if(guess == lottery)
            System.out.println("Exact match:you win $10000");
        else if(guessDigit1 == lotteryDigit2 && guessDigit2 == lotteryDigit1)
            System.out.println("Match all digits:you win $ 3000");
        else if(guessDigit1 == lotteryDigit1 ||guessDigit1 == lotteryDigit2 || guessDigit2 == lotteryDigit1 || guessDigit2 == lotteryDigit2)
            System.out.println("Match one digit:you win $1000");
        else 
            System.out.println("no match");
        
        
}
}

3.13 switch语句

switch语句基于变量或者表达式的值来执行语句

语法:

switch(switch表达式){
        case value1:语句(组)1;

                             break;

        case value2:语句(组)2;

                             break;

        case value3:语句(组)3;

                             break;

        default:语句(组);

                    break;

}

switch表达式必须得到一个char,byte,short,int,String类型的值

value必须是常量(表达式),不能包含变量

switch表达式的值和case语句的值相匹配时,执行从该case开始的语句,直到遇到break或者switch语句的结尾

3.15操作符的优先级和结合规则

所有的二元操作符都是左结合的

                                          赋值操作符时右结合的

左结合对赋值语句来说没有任何意义

3.16调试

JDK包含一个命令行调试器jdb(本身也是一个Java程序),该调试器使用类型进行调用。

本章完!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值