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. 【zzulioj 2127】 tmk射气球

    比较简单的题,直接求空间中一个点到直线的距离而已,这道题说了直线和水平的平面 平行,我们可以先求投影到直线的距离,然后再算当前点到直线的距离. Description 有一天TMK在做一个飞艇环游世界 ...

  2. 《深入理解Java函数式编程》系列文章

    Introduction 本系列文将帮助你理解Java函数式编程的用法.原理. 本文受启发于JavaOne 2016关于Lambda表达式的相关主题演讲Lambdas and Functional P ...

  3. es5和es6实现lazyman

    es6实现 1 class _LazyMan { constructor(name) { this.tasks = []; this.sleep = this.sleep.bind(this); th ...

  4. JQ实现选中以后就左右移动

    <head> <meta charset="utf-8" /> <title>select_option移动</title> < ...

  5. Nmap功能与常用命令

    Nmap功能与常用命令 其基本功能有三个,一是探测一组主机是否在线:其次是扫描主机端口,嗅探所提供的网络服务:还可以推断主机所用的操作系统. Nmap可用于扫描仅有两个节点的LAN,直至500个节点以 ...

  6. git远程库代码版本回滚方法

    最近使用git时, 造成了远程库代码需要回滚到之前版本的情况,为了解决这个问题查看了很多资料. 问题产生原因: 提交了错误的版本到远程库. 以下是解决的方法, 供大家参考: 1.对本地代码库进行回滚 ...

  7. Android高效内存:让图片占用尽可能少的内存

    Android高效内存:让图片占用尽可能少的内存 一.让你的图片最小化 1.1 大图小图内存使用情况对比 大图:440 * 336    小图:220 * 168 小图的高宽都是大图的1/2--> ...

  8. salesforce零基础学习(七十一)级联表DML操作

    曾经做项目没有考虑那么多,对于级联表操作都是正常的一步一步操作,没有考虑过失败情况,最近项目遇见了失败的情况,导致碰到了相应的情况,特此mark一下,免得后期继续踩坑. 需求如下:新建页面,页面中包含 ...

  9. JS基础,你需要掌握的要点!

    [循环控制语句]1.break:终止本层循环,继续执行循环后面的语句: 当循环有多层时,break只会跳过一层循环:2.continue:跳过本次循环,继续执行下一次循环: 对于for,continu ...

  10. php 中时间函数date及常用的时间计算

    曾在项目中需要使用到今天,昨天,本周,本月,本季度,今年,上周上月,上季度等等时间戳,趁最近时间比较充足,因此计划对php的相关时间知识点进行总结学习 1,阅读php手册date函数 常用时间函数: ...