紧接上一篇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种情况,程序正确。在这个程序中,我们用到了上面所讲的逻辑运算符,下一篇文章,我会写循环语句以及通过确认对话框来回答问题,希望我们大家共同学习,一起进步,谢谢。

java判断彩票中奖_Java语言程序设计(八)swith语句及彩票判定中奖问题相关推荐

  1. Java大牛考自学_Java语言程序设计外行人能自考得来吗?

    有人说二十一世纪的现代文明发展速度远远超过了过去的中华五千年文明发展史,而互联网成了二十一世纪事物发展的最佳助推器,它推动了科技.医疗.教育.社会公共事业等方面的发展.而计算机相关的编程教学也成了人们 ...

  2. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  3. java编程二十_Java语言程序设计(二十)编程练习

    1.编写程序,读取一个在0到1000之间的整数,并将该整数的各位数字相加,例如,整数是999,结果输出27. 程序清单如下: package sumsum; import java.util.Scan ...

  4. 软考 java程序设计,软考程序员考点Java语言程序设计之控制流语句分类

    下面希赛小编为大家整理的软考程序员考点Java语言程序设计之控制流语句分类,希望能帮助学友们.具体内容如下: 分类 它们由特定的语句定义符组成.C语言有九种控制语句.可分成以下三类: (1).条件判断 ...

  5. c语言break语句作用范围,C语言程序设计中break语句分析

    摘 要: 在C语言程序设计课程中,break语句有两个作用:一是应用于switch语句中,可以结束多分支选择结构:二是应用于循环结构中,可以结束本层循环.通过实例分析出break语句使用的条件,bre ...

  6. java语言程序设计第六章答案_Java语言程序设计(邵丽萍编著)第六章.doc

    Java语言程序设计(邵丽萍编著)第六章 第6章 (一)判断题 (1)抽象类不能实例化. ( ) (2)一个类中,只能拥有一个构造方法. ( ) (3)内部类都是非静态的. ( ) (4)接口中的所有 ...

  7. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

  8. java 铁路的运费与路程_Java语言程序设计2(16)

    反复地看书,做题,因为本课程主要是一些理论的知识,要求记忆的内容很多,因此,必须多做题,多看书,在做题的过程中检验自己对知识的理解和掌握情况是否到位.正确.自己总结课程的内容,也是帮助理解和记忆的好方 ...

  9. 郑莉版java第三章答案_java语言程序设计(郑莉)第七章课后习题答案.docx

    java语言程序设计(郑莉)第七章课后习题答案.docx 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: if (matrix.isTria ...

最新文章

  1. 浅探C指针(一)--初识指针
  2. VSCode 启动 Vue 项目 npm install 报错
  3. html rotate()函数,CSS rotate()用法及代码示例
  4. 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)C题 图墙+拉格朗日四平方数和定理
  5. Java 判断密码是否是大小写字母、数字、特殊字符中的至少三种
  6. HDU2067(卡特兰数)
  7. 华三ospf联动bfd_HCIE2020__路由交换专家__BFD综合实验
  8. vue - 组件的创建
  9. 也谈虚拟化的服务器选型,以及性能考虑
  10. 命令 所有的虚拟环境_Python虚拟环境安装与配置
  11. Linux的顶级十六进制编辑器
  12. 安卓苹果均兼容的移动版CAD看图软件——迅捷CAD看图
  13. 一般python程序员的工资_【Python程序员工资|Python程序员待遇怎么样】-看准网
  14. Open Gapps各版本介绍
  15. 神经网络和深度学习(一)——初识神经网络
  16. AR涂涂乐项目之识别图制作模型的制作一
  17. 浅谈零知识证明之二:简短无交互证明(SNARK)
  18. 极米newz6x和newz8x区别 极米newz6x和newz8x哪款好 哪个性价比高
  19. C++:亲戚(relation)
  20. 猿辅导2019 编程两道

热门文章

  1. SV精通2 测试的开始和结束 设置断点
  2. 微信退款和支付宝退款接口调用(java版)
  3. 开发微信公众号参考资料
  4. Zabbix常用监控项
  5. JMeter性能测试:JMeter多用户并发模拟及压测结果分析
  6. jmeter做简单的http并发测试
  7. 《银行磁条卡销售点终端规范》
  8. js判断是安卓android或者苹果iphone及iphonex
  9. 青龙面板搭建和手机京东Cookie获取最新方法
  10. 小Q系列故事——电梯里的爱情