Java语言程序设计(八)swith语句及彩票判定中奖问题

紧接上一篇Java语言程序设计(七)之后,我们是否执行一条语句,是由几个条件的组合来决定的,我们可以使用逻辑运算符组合这些条件,逻辑运算符也称其为布尔运算符,是对布尔值进行的运算,它会创建新的布尔值,布尔运算符包括非运算符(!)(与逻辑非意义相同),与运算符(&&)(与逻辑与意义相同),或运算符(||)(与逻辑或意义相同),异或运算符(^)(与逻辑异或意义相同),异或的意义为:当且仅当两个操作数具有不同的布尔值时,两个布尔型操作数的异或采才为true。

      1.Switch语句

      如果在程序中,我们需要根据变量的具体值来进行进一步的运算,为了全面的考虑所有情况,我们需要使用嵌套的if语句,不过过多的使用嵌套语句会使得程序很难阅读,Java提供switch语句来有效的处理多重条件的问题,我们下面用一个程序清单来具体展示。

      switch(status){

          case 0: compute taxes for single filers;

                       break;

          case 1: compute taxes for married filing jointly;

                       break;

          case 2: compute taxes for married filing separately;

                       break;

          case 3: compute taxes for head of household;

                       break;

          default: System.out.println("Errors: invalid status");

                       System.exit(0);

      上面的switch语句意义为,判断如果状态为0,计算单身纳税人的税款,如果状态为1,计算已婚共同纳税人的税款,如果状态为2,计算已婚单独纳税人的税款,如果状态为3,计算家庭户主纳税人的税款,如果都不满足,输出Errors,System.exit(0)与System.exit(1),都是结束程序,只不过0为正常结束,1为异常结束。

      2.彩票问题

      假如说我们打算开发一个玩彩票的游戏,程序随机地生成一个两位数地彩票,提示用户输入一个两位数,然后按照下面地规则判定用户是否能赢:

      (1)如果用户的输入数匹配彩票的实际顺序,奖金为10000美金。

      (2)如果用户输入的所有数字匹配彩票的所有数字(即顺序颠倒),奖金为3000美金。

      (3)如果用户输入的一个数字匹配彩票的一个数字,奖金为1000美金。

      我们可以用前面文章讲过的Math类的random方法生成随机数,之后进入判定语句,将输入的两位数除以10取第一位,输入的两位数对10去余,获取第二位,之后通过条件语句进行判定。程序清单如下:

package lottery;

import java.util.Scanner;

/**
 *
 * @author john
 */
public class Lottery {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
         int lottery = (int)(Math.random()*100);
         Scanner input = new Scanner(System.in);
         System.out.println("Enter your lottery pick(two digits):");
         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("Sorry,no match");
    }
    
}

图片

      我输入的数字为40,随机生成的数字为16,显示最后一种情况。

图片

      输入的数字为39,随机生成的数字为37,显示第3种情况,程序正确。在这个程序中,我们用到了上面所讲的逻辑运算符,下一篇文章,我会写循环语句以及通过确认对话框来回答问题,希望我们大家共同学习,一起进步,谢谢。


猜你喜欢

转载自blog.51cto.com/15064656/2602778
今日推荐