Java期末复习题之分支循环

 点击返回标题->23年Java期末复习-CSDN博客


第1题.

编写一个模拟同时掷骰子的程序。要用Math.random()模拟产生两个骰子,将两个结果相加,相加的和等于7的可能性最大,等于2和12的可能性最小。程序模投掷3600次,判断求和的结果是否合理。

思路

Math.random的机制:令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值。

骰子的取值范围是[1,6]的整数,故关键代码为:( int )( Math.random() * 6 + 1)

解释:Math.random() * 6的结果为大于等于 0.0 且小于 6.0 的伪随机 double 值,加1后为大于等于 1.0 且小于 7.0 的伪随机 double 值,最后对结果强制转换为int类型,将舍弃所有小数部分,只留下[1,7)的整数,等同于[1,6]。

完整代码

 


public class Main {
	public static void main(String[] args) {
		int[] num = new int[13];//从下标为2到下标为12的元素为止,对应记录两个骰子点数相加的结果出现的次数
		for(int i = 0; i < 3600; i++) {
			int res1 = (int)(Math.random()*6 + 1);
			int res2 = (int)(Math.random()*6 + 1);
			switch(res1 + res2) {
			case 2:
				num[2]++;
				break;
			case 3:
				num[3]++;
				break;
			case 4:
				num[4]++;
				break;
			case 5:
				num[5]++;
				break;
			case 6:
				num[6]++;
				break;
			case 7:
				num[7]++;
				break;
			case 8:
				num[8]++;
				break;
			case 9:
				num[9]++;
				break;
			case 10:
				num[10]++;
				break;
			case 11:
				num[11]++;
				break;
			case 12:
				num[12]++;
				break;
			}
		}
		for(int i = 2; i <= 12; i++) {
			System.out.printf("两个骰子点数相加为%d的情况出现了%d次,对应概率为%.3f\n", 
					i, num[i], (double)num[i] / 3600);
		}
	}
}


第2题.

编程:从键盘读取星号数,采用循环语句打印如下图形。如:从键盘输入10,则星号排列最大数是10。注意图4图5星号数需要为奇数:

没什么能讲的,反正就是控制循环范围来打印空格、星号、换行。

图案1:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i = 1; i <= n; i++) {
			for(int j = i; j < n; j++) {
				System.out.print(' ');
			}
			for(int j = 0; j < i; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
	}
}

图案2:


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i = 1; i <= n; i++) {
			for(int j = 0; j < i; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
		for(int i = 1; i <= n; i++) {
			for(int j = i; j < n; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
	}
}

图案3:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i = 1; i <= n; i++) {
			for(int j = 0; j < i; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
		for(int i = 1; i <= n; i++) {
			for(int j = 0; j < i; j++) {
				System.out.print(' ');
			}
			for(int j = i; j < n; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
	}
}

 图案4:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i = 1; i <= n; i++) {
			for(int j = i; j < n; j++) {
				System.out.print(' ');
			}
			for(int j = 0; j < 2*i-1; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
		
	}
}

 图案5:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i = 1; i <= n; i++) {
			for(int j = i; j < n; j++) {
				System.out.print(' ');
			}
			for(int j = 0; j < 2*i-1; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
		for(int i = n - 1; i >= 1; i--) {
			for(int j = i; j < n; j++) {
				System.out.print(' ');
			}
			for(int j = 0; j < 2*i-1; j++) {
				System.out.print('*');
			}
			System.out.println();
		}
	}
}


第3题.

编写一个猜数字游戏的程序,预先生成一个0-9的随机数,用户键盘录入一个所猜的数字,如果输入的数字和后台预先生成的数字相同,则表示猜对了,这时,程序会打印“恭喜您,答对了!”如果不相同,则比较输入的数字和后台预先生成的数字大小,如果大了,打印“sorry,您猜大了!”如果小了,打印“sorry,您猜小了!”如果一直猜错,则游戏一直继续,直到数字猜对为止。

 Random类对象的机制:可以指定产生的数的类型,比如.nextInt(num);将产生大于0小于num的数。

.nextInt(9)将产生[0,9)的数,整体加1则为[1,10),等同于[1,9]。

import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();//实例化Random对象
        int num = random.nextInt(9) + 1;//产生[1,10)即[1,9]的数字
        Scanner scan = new Scanner(System.in);
        System.out.println(num + "请猜数字:");//这个num是方便测试直接打印出来看的
        while (true) {
            int guess = scan.nextInt();
            if (guess > num) {
                System.out.println("sorry,您猜大了!");
            } 
            else if (guess < num) {
                System.out.println("sorry,您猜小了!");
            } 
            else {
                System.out.println("恭喜您,答对了!");
                break;//猜对才结束循环
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/233455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在IDEA中创建Maven项目时没有src文件、不自动配置文件

错误示例&#xff1a; 没有src文件&#xff0c;并且没有自动下载相关的配置文件 对我这中情况无效的解决办法&#xff1a; ①配置好下列图中圈出来的文件 ②在VM选项中输入&#xff1a;“-DarchetypeInternal” ③点击应用&#xff0c;再点击确定 ④还是不行 解决办法&#x…

20 套监控平台统一成 1 套 Flashcat,国泰君安监控选型提效之路

author:宋庆羽-国泰君安期货 运维工作最重要的就是维护系统的稳定性&#xff0c;其中监控是保证系统稳定性很重要的一环。通过监控可以了解系统的运行状态&#xff0c;及时发现问题和系统隐患&#xff0c;有助于一线人员快速解决问题&#xff0c;提高业务系统的可用时长。 作为…

class064 Dijkstra算法、分层图最短路【算法】

class064 Dijkstra算法、分层图最短路【算法】 算法讲解064【必备】Dijkstra算法、分层图最短路 code1 743. 网络延迟时间 // Dijkstra算法模版&#xff08;Leetcode&#xff09; // 网络延迟时间 // 有 n 个网络节点&#xff0c;标记为 1 到 n // 给你一个列表 times&…

机器学习基本概念介绍 2023

笔记来源于&#xff1a; https://www.youtube.com/watch?vphQK8xZpgoU&t172s https://www.youtube.com/watch?vXLyPFnephpY&t645s Machine/Deep Learning 机器学习概况来说&#xff0c;让机器具备自动找函式的能力 &#xff08;Machine Learning 约等于 Looking …

MongoDB的条件操作符

本文主要介绍MongoDB的条件操作符。 目录 MongoDB条件操作符1.比较操作符2.逻辑操作符3.元素操作符4.数组操作符5.文本搜索操作符 MongoDB条件操作符 MongoDB的条件操作符主要分为比较操作符、逻辑操作符、元素操作符、数组操作符、文本搜索操作符等几种类型。 以下是这些操作…

unity Mesh Simplify 1.10(模型优化工具:查看面数,降低面数灯)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、面板参数详解说明二、使用方法总结 前言 有时候想对模型优化一下&#xff0c;奈何又不会建模方面的。虽然我感觉它的数值不大对&#xff0c;但是不影响我们优化顶点数嘛。 Me…

python 画条形图(柱状图)

目录 前言 基础介绍 月度开支的条形图 前言 条形图&#xff08;bar chart&#xff09;&#xff0c;也称为柱状图&#xff0c;是一种以长方形的长度为变量的统计图表&#xff0c;长方形的长度与它所对应的变量数值呈一定比例。 当使用 Python 画条形图时&#xff0c;通常会使…

0基础学java-day14-(集合)

一、集合 前面我们保存多个数据使用的是数组&#xff0c;那么数组有不足的地方&#xff0c;我们分析一下 1.数组 2 集合 数据类型也可以不一样 3.集合的框架体系 Java 的集合类很多&#xff0c;主要分为两大类&#xff0c;如图 &#xff1a;[背下来] package com.hspedu.c…

如何确认网站是否有漏洞,如何找出网站存在的漏洞,找到漏洞该如何处理

如何确认网站或者服务器是否有漏洞 判断一个网站是否是存在漏洞的方法&#xff1a; 1.可以借助德迅云安全漏洞扫描功能来检查漏洞。 2.打开德迅云安全首页&#xff0c;点击最上面导航栏中的“安全产品”。 3.滑到“漏洞扫描”&#xff0c;选择“产品价格”服务。 4.选择您需…

CleanMyMac2024破解版激活码许可证密钥

CleanMyMac X是一款颇受欢迎的专业清理软件&#xff0c;拥有十多项强大的功能&#xff0c;可以进行系统清理、清空废纸篓、清除大旧型文件、程序卸载、除恶意软件、系统维护等等&#xff0c;并且这款清理软件操作简易&#xff0c;非常好上手&#xff0c;特别适用于那些刚入手苹…

51单片机的内核架构组成 介绍

对于51单片机相信很多电子信息或者相关专业的朋友应该都不会感觉陌生&#xff0c;很多专业在大学课程中开设的单片机课程就是使用的51单片机进行授课和学习的。51单片机的内容相较于其他高性能复杂的单片机来说&#xff0c;架构相对简单一些&#xff0c;寄存器也少很多&#xf…

vite脚手架,配置动态生成路由,添加不同的layout以及meta配置

实现效果&#xff0c;配置了layout和对应的路由的meta 我想每个模块添加对应的layout&#xff0c;下边演示一层layout及对应的路由 约束规则&#xff1a; 每个模块下&#xff0c;添加对应的 layout.vue 文件 每个文件夹下的 index.vue 是要渲染的页面路由 每个渲染的页面路由对…

Kafka-快速实战

Kafka介绍 ChatGPT对于Apache Kafka的介绍&#xff1a; Apache Kafka是一个分布式流处理平台&#xff0c;最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统&#xff0c;可以快速地处理高吞吐…

案例课4——智齿客服

1.公司介绍 智齿科技&#xff0c;一体化客户联络中心解决方案提供商。提供基于「客户联络中心」场景的一体化解决方案&#xff0c;包括公域私域、营销服务、软件BPO的三维一体化。 智齿科技不断整合前沿的人工智能及大数据技术&#xff0c;已构建形成呼叫中心、机器人「在线语音…

46. 全排列

全排列 描述 : 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 题目 : LeetCode 46.全排列 : 46. 全排列 分析 : 这里给个非常好的视频 : LeetCode力扣 46. 全排列Permutations_哔哩哔哩_bilibili 解析: class S…

双水平呼吸机算法怎么写?(其实是记录自己写呼吸的心得)

双水平正压呼吸机是什么&#xff1f; 市面上的双水平呼吸机&#xff0c;就是包含有双水平模式的呼吸机&#xff0c;其中一般也会包含单水平模式。其中正压的意思&#xff0c;就是抬高呼吸的压力基线&#xff0c;使吸气顺畅一些。 呼吸机硬件参考 不能给太详细&#xff0c;就给…

机械中常用的一些术语

目录 一、OEMSOP:SOP编写指南 WI(标准作业指导书):标准作业程序 &#xff08;SOP&#xff09;:SOP和WI的区别&#xff1a;一、PFC、FMEA、PCP、WIPPAP、PSW&#xff1a; 一、OEM 1.OEM&#xff1a; 原始设备制造商OEM&#xff08;Original Equipment Manufacturer&#xff09;…

从零开始的C++(二十一)

C11 1.列表初始化&#xff1a; //允许以下代码正确运行int a[]{1,2,3};//效果与int a[]{1,2,3}一致 即允许省略等于号。同时&#xff0c;允许用花括号对所有自定义类型和内置类型进行初始化&#xff0c;而非以前花括号只能对数组进行初始化。利用花括号对自定义类型初始化时…

数据结构和算法-单链表

数据结构和算法-单链表 1. 链表介绍 链表是有序的列表&#xff0c;但是它在内存中是存储如下 图1 单链表示意图 小结: 链表是以节点的方式存储每个节点包含data域&#xff0c;next域&#xff0c;指向下一个节点。如图&#xff1a;发现链表的各个节点不一定是连续存储。比如地…

C语言函数详解

# 函数的概念 对于函数&#xff0c;我想大家应该并不陌生&#xff0c;在数学中就存在函数的概念&#xff0c;比如&#xff1a;一次函数 ykxb &#xff0c;k和b都是常数&#xff0c;给⼀个任意的x&#xff0c;就能得到⼀个y值。 在C语言中也有函数的概念&#xff0c;函数也被称为…