1.编写一个剪子石头布对战小程序

该法是穷举法:将所有情况列出来

import java.util.*;

public class Game{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("经典小游戏:剪刀石头布");
System.out.println("游戏规则:1:剪刀;2:石头;3:布");
System.out.println("您的起始分数为:10分");
int score=10;
System.out.println("请输入要大战几百回合:");
int count=input.nextInt(); //外层我出的什么
for(int i=1;i<=count;i++){
System.out.println("请出拳:");
//玩家出拳
int fist=input.nextInt();
//电脑出拳
int computer=(int)(Math.random()*3)+1;
//考虑电脑产生随机数的原理,可以扩大取值范围,但只使用中间的三个数值
//如变为1—9,但只用456,此时需要将规则换为:4:剪刀;5:石头;6:布
//只需要在switch的外层加一个if判断条件,限制computer取值:computer>=4&&computer<=6;即可 //与电脑PK比较
switch(fist){
case 1:
if(computer==1){
System.out.println("你们打平了,电脑出的剪刀");
}else if(computer==2){
System.out.println("你输了,电脑出的石头!");
score--;
}else{
System.out.println("你赢了,电脑出的布!");
score++;
}
break;
case 2:
if(computer==1){
System.out.println("你赢了,电脑出的剪刀!");
score++;
}else if(computer==2){
System.out.println("你们打平了,电脑出的石头!");
}else{
System.out.println("你输了,电脑出的布!");
score--;
}
break;
case 3:
if(computer==1){
System.out.println("你输了,电脑出的剪刀");
score--;
}else if(computer==2){
System.out.println("你赢了,电脑出的石头!");
score++;
}else{
System.out.println("你们打平了,电脑出的布!");
}
break;
}
}
System.out.println("您最后的得分为:"+score); } }

方法二:只需要比较

import java.util.Scanner;

public class Test6{
public static void main(String[] args){
//做一个剪刀石头布的对战小程序
//1代表剪刀,2代表石头,3代表布
Scanner input=new Scanner(System.in);
int computer=(int)(Math.random()*3)+1; //方案一:下面是无限循环,还以优化,由用户开控制玩的局数
//考虑电脑产生随机的概率问题,可以将取值范围变为1-5,我们用2,3,4来代表特定的含义,遇到1和5就舍弃
for(;;){
System.out.println("来玩剪刀石头布吧!1代表剪刀,2代表石头,3代表布,请输入:");
int pk=input.nextInt();
if((pk==1&&computer==3)||(pk==3&&computer==1)){
if(pk>computer){
System.out.println("你出的:"+pk+",电脑出的:"+computer+",你赢了");
}else{
System.out.println("你出的:"+pk+",电脑出的:"+computer+",电脑赢了");
}
}else if(pk==computer){
System.out.println("你出的:"+pk+",电脑出的:"+computer+",你们不分上下");
}else{
if(pk<computer){
System.out.println("你出的:"+pk+",电脑出的:"+computer+",你赢了");
}else{
System.out.println("你出的:"+pk+",电脑出的:"+computer+",电脑赢了");
}
}
} //最笨的方法:将9种情况用if···else罗列出来 }
}

2.要求循环录入2个班的学员成绩

假设每个班都有3个学员,依次录入,统计超过90分的学员人数,以及这批超过90分的学员平均分。

import java.util.Scanner;

public class Test5{
public static void main(String[] args){
//要求循环录入2个班的学员成绩,假设每个班都有3个学员,
//依次录入,统计超过90分的学员人数,以及这批超过90分的学员平均分。
Scanner input=new Scanner(System.in); int score=0;
int count=0;
double sum=0;
//外层为班级
for(int i=1;i<=2;i++){
//内层为班中的学员
for(int j=1;j<=3;j++){
System.out.println("请输入"+i+"班第"+j+"个学员成绩:");
score=input.nextInt();
if(score>90){
count++;
sum+=score;
}
}
}
System.out.println("两个班超过90的学员人数:"+count); //对于没有人超过90情况的处理
if(count==0){
System.out.println("两个班超过90的学员成绩平均分为:0");
}else{
System.out.println("两个班超过90的学员成绩平均分为:"+sum/count);
}
}
}

JavaSE教程-04Java中循环语句for,while,do···while-练习2的更多相关文章

  1. JavaSE教程-04Java中循环语句for,while,do···while

    ** Java的循环语句 ** 引入: 生活中有循环,程序的世界也有循环. 思考:生活中有哪些循环的事情? 总结:什么是循环? 重复做类似的事情,而且有终止条件,如果没有终止条件会是怎样? 类似这样的 ...

  2. JavaSE教程-04Java中循环语句for,while,do···while-思维导图

    思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 2)右击在新标签中打开放大查看

  3. JavaSE教程-04Java中循环语句for,while,do···while-练习

    0.实现打印50遍的"我爱你" 1.请在控制台输出数据1-10 2.请在控制台输出数据10-1 3.求出1-10之间数据之和 4.求出1-100之间能够被3整除的所有数的和 前四题 ...

  4. JavaSE教程-03Java中分支语句与四种进制转换

    一.分支语句 计算机源于生活,程序模拟现实生活,从而服务生活 行为模式 1,起床,刷牙,洗脸,吃早餐,上课,回家,睡觉(顺序性) 2,如果时间不太够,打个滴滴快车,如果时间够,坐个地铁(选择性) 3, ...

  5. JavaSE教程-03Java中分支语句与四种进制转换-思维导图

    思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 2)右击在新标签中打开放大查看 if语句 a) if语句 基本语法结构: if(关系表达式) { 基本语句体 } 执行流程: 首先判断 ...

  6. JavaSE教程-03Java中分支语句与四种进制转换-练习

    练习1: 老师如果带100或以上则请客吃饭 import java.util.Scanner; public class Test2{ public static void main(String[] ...

  7. “全栈2019”Java第二十七章:流程控制语句中循环语句for

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第二十六章:流程控制语句中循环语句do-while

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java第二十五章:流程控制语句中循环语句while

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. transform-origin 的定位

    transform-origin接受两个参数,它们可以是百分比,em,px等具体的值,也可以是left,center,right,或者 top,center,bottom等描述性参数,第一个参数表示X ...

  2. 深入tornado中的IOStream

    IOStream对tornado的高效起了很大的作用,他封装了socket的非阻塞IO的读写操作.大体上可以这么说,当连接建立后,服务端与客户端的请求响应都是基于IOStream的,也就是说:IOSt ...

  3. Devexpress 中对RedailMenu的使用

    最近项目中用到RadialMenu,效果图如下所示: 闲下来就对,devexpress中的RedialMenu的使用总结一下. 第一:假设RedialMenu中全部是BarButtonItem的情况. ...

  4. 【转】JDBC学习笔记(7)——事务的隔离级别&批量处理

    转自:http://www.cnblogs.com/ysw-go/ 数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发 ...

  5. 用vuejs仿网易云音乐(实现听歌以及搜索功能)

    前言 前端时间学了vue,一开始看了vue1.0,后来实在觉得技术总得实践,就直接上手vue2.0.然后花了将近一周时间做了一个网易云音乐的小项目.一开始觉得项目比较小,没必要用vuex所以就没有使用 ...

  6. Python数据结构与循环语句

    # Python数据结构与循环语句:   首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟.  关于买书: 学会python之后,才需要买书 ...

  7. eclipse code style template

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><templa ...

  8. PHP 序列化与反序列化函数

    序列化与反序列化 把复杂的数据类型压缩到一个字符串中 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量   1.创建一个$arr数组用于储存用户基本信息 ...

  9. [移动端] IOS下border-image不起作用的解决办法

    上周五突然接到现场的一个需求,做一个移动端的劳模展示页面.现场美工把原型图发了过来.这个样子的: 说实在的很想吐槽一下我们美工的审美哈,不过这不是重点. 因为边框是需要特殊花纹的所以打算用border ...

  10. 【算法系列学习】[kuangbin带你飞]专题十二 基础DP1 C - Monkey and Banana

    https://vjudge.net/contest/68966#problem/C [参考]http://blog.csdn.net/qinmusiyan/article/details/79862 ...