美发企业网站模板/logo网站设计
本文是在学习过C语言后,开始进行Java学习时,对于基本语法的一些案例练习。案例内容来自B站黑马编程课
1.HelloWorld
问题介绍;请编写程序输出“HelloWorld”.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); }
}
1. public class HelloWorld :公共类(Public Class),每个Java源文件中都可以有一个(且只有一个)公共类,这个公共类的名称必须与源文件的名称相同(包括大小写)。
2.main(String [ ] args): 类中包含了一个主方法(main
方法),这是Java程序的入口点。main
方法接受一个字符串数组args
作为参数,这个数组通常用于接收从命令行传递给程序的参数。
3.println:在main
方法内部,调用了System.out.println
方法来在控制台上打印出字符串"Hello World"
。System.out
是Java的标准输出流,而println
是一个方法,用于输出数据并换行。
2.购买飞机票
问题介绍:用户购买机票时,机票原价会按照淡季,旺季,头等舱还是经济舱的情况进行相应的优惠,优惠方案如下:5-10月为旺季,头等舱9折,经济舱8.5折;11月到来年4月为淡季,头等舱7折,经济舱6.5折,请开发程序计算用户当前机票的优惠价。
package JAVA_study.src.Text;import java.util.Scanner;public class Text1 {public static void main(String[] age){Scanner sr = new Scanner(System.in);double money = 1000.0; //票价System.out .println("请输入当前月份");int month = sr.nextInt();System.out.println("请输入选择机票种类");String type = sr.next();double place = sed(money,month,type);System.out.println("最终票价为" +place);}public static double sed(double money,int month,String type){double place = 1.0;if(month >= 5 && month <= 10){switch (type) {case "头等舱" : place = 0.9 * money; break;case "经济舱" : place = 0.85 * money;break;}}else {switch (type) {case "头等舱" : place = 0.7 * money; break;case "经济舱" : place = 0.65 * money; break;}}return place;}
}
1.方法(类似于c中的函数)
2.选择语句和判断语句
对于if,else if,以及Switch case 语句和C语言用法是一致的。
3.生成验证码
问题介绍:开发一个程序,可以生成指定位数的验证码,每位可以是数字,大小写字母。
package JAVA_study.src.Text;import java.util.Random;
import java.util.Scanner;public class Text2 {public static void main(String[] args){Scanner sr = new Scanner(System.in);int length = sr.nextInt();System.out.println(code(length));}public static String code(int n){Random r= new Random();String ans = "";for(int i=0;i<n;i++){int type = r.nextInt(3);switch (type) {case 0: ans += r.nextInt(10);break;case 1: char str1 = (char)(r.nextInt(26)+65); ans += str1;break;case 2: char str2 = (char)(r.nextInt(26)+65+32); ans +=str2;break;}}return ans;}
}
1.随机数函数:Random,使用Random(3)生成从0-2的三位随机数,即包含左边,不包含右边。
4.评委打分
问题介绍:在唱歌比赛中,可能有多个评委要给选手打分,分数是[0 -100] 之间的整数。选手最后的得分为:去掉最高分,最低分后剩余分数的平均分,请编写程序能够录入多名评委的分数,并计算选手的最终得分。
package JAVA_study.src.Text;import java.util.Scanner;public class Text3 {public static void main(String[] arr){Scanner se = new Scanner(System.in);System.out.println("请输入评委人数");int num = se.nextInt();System.out.println("该学生的成绩为"+A(num)+"分");}public static double A(int num){Scanner se = new Scanner(System.in);double ave = 0.0;int MAX = 0;int MIN = 100;int sum = 0;int[] sums = new int [num];for(int i=0;i<num;i++){System.out.println("请输入第"+(i+1)+"位评委的分数");int sr = se.nextInt();sums[i] = sr;sum += sr;if(sr > MAX){MAX = sr;}if(sr < MIN){MIN = sr;}}ave =(sum-MAX-MIN)/(num-2.0);return ave;}
}
//这是没有看视频之前,自己写的,下面是视频代码
/*
import java.util.Scanner;public class Text3 {public static void main(String[] arr){Scanner se = new Scanner(System.in);System.out.println("请输入评委人数");int num = se.nextInt();System.out.println("该学生的成绩为"+A(num)+"分");}public static double A(int num){Scanner se = new Scanner(System.in);double ave = 0.0;int MAX = 0;int MIN = 100;int sum = 0;int[] sums = new int [num];for(int i=0;i<num;i++){System.out.println("请输入第"+(i+1)+"位评委的分数");int sr = se.nextInt();sums[i] = sr;sum += sr;if(sr > MAX){MAX = sr;}if(sr < MIN){MIN = sr;}}ave =(sum-MAX-MIN)/(num-2.0);return ave;}
}*/package JAVA_study.src.Text;import java.util.Scanner;public class Text3 {public static void main(String[] arr) {//目标:完成评委打分案例System.out.println("当前选手的得分是:"+getAverageScore(6));}public static double getAverageScore(int number){//定义一个动态初始化的数组,方便后期存入评委的打分int []scores = new int [number];//遍历数组每一个位置,依次录入评委分数Scanner sc = new Scanner(System.in);for (int i = 0;i<number;i++) {System.out.println("请您录入第"+(i+1)+"个评委的分数");int score = sc.nextInt();scores[i] = score;}int sum = 0; //求总分的变量int max = scores[0];int min = scores[0];//遍历一般找数据for (int i = 0; i < scores.length; i++) {int score =scores[i];sum += score;if(score > max){max= score;}if(score < min){min= score;}}return (sum-min-max)/(number-2.0);}
}
1.for循环:与C语言使用是一致的,for(循环变量;终止条件;变量变化){ 执行语句;}
在IDEA中,可以使用 循环的次数.fori(回车)来快捷输入一个for循环。
2.数据运算:包括四则运算,自增,自减运算都和C语言是一致的,还有浮点数除法除数要加小数点。
5.数字解密
问题介绍:某系统的数字密码是一个四位数,如1983,为了安全,需要加密后再传输,加密规则是:对于密码的每位数,都加5,再对10求余,最后将所有的数字顺序反转,得到一组加密后的新数,请设计出满足本需求的加密程序。
package JAVA_study.src.Text;import java.util.Scanner;public class Text4 {public static void main(String [] ages){Scanner sc = new Scanner(System.in);System.out.println("请输入要加密的数字");int num = sc.nextInt();int number = 1;int s = num;while(s > 1){number++;s=s/10;}int [] a = M(num,number);int result = 0;int p =1;for (int i = number-1; i >= 0; i--) {result += a[i]*p;p *=10;}System.out.println(result);}public static int [] M(int num,int number){int [] arrs = new int[number];for (int i = 0; i < number; i++) {arrs[i] = ((num%10)+5)%10;num = num/10;}return arrs;}
}
1.Java可以直接返回数组!!基本的计算方法与C语言是一致的,这里没有参考视频中的函数写法。
6.数组拷贝
问题介绍:请把一个整型数组,例如存储了数据:11,22,33,拷贝成一个新数组出来
package JAVA_study.src.Text;import java.util.Arrays;
import java.util.Scanner;public class Text5 {public static void main(String []ags){System.out.println("请输入数组元素个数");Scanner sc = new Scanner(System.in);int number = sc.nextInt();int [] arr = new int [number];for (int i = 0; i < number; i++) {System.out.println("请输入第"+(i+1)+"个数组元素");int input = sc.nextInt();arr[i] = input;}int [] result = Copy_arr(arr,number);for(int i=0;i<number;i++){System.out.println(result[i]);
}}public static int []Copy_arr(int []arr,int number){int []new_arr = new int [number];for (int i = 0; i < number; i++) {new_arr[i] = arr[i];}return new_arr;}
}
java提供了许多简单有用的函数来实现一些功能。
1.数组打印:除开for循环外,提供了一种System.out.println(Arrays.toString(result))的实现方法。这行代码的作用是打印数组result
的内容到控制台,每个元素以字符串形式表示,元素之间用逗号加空格分隔,整个数组被方括号包围。
2.数组拷贝:可以不用手动循环拷贝,可以使用System.arraycopy(arr, 0,new_arr, 0, number)
关于arraycopy函数
-
参数解释:
arr
(Object src
):源数组,即你要从中复制数据的数组。0
(int srcPos
):源数组中的起始位置(索引),从该位置开始复制数据。在这个例子中,它是0
,意味着从源数组的第一个元素开始复制。new_arr
(Object dest
):目标数组,即你要将数据复制进去的数组。这个数组必须已经存在,并且有足够的空间来存储要复制的数据。0
(int destPos
):目标数组中的起始位置(索引),从该位置开始放置复制的数据。在这个例子中,它也是0
,意味着从目标数组的第一个元素开始放置数据。number
(int length
):要复制的数组元素的数量。在这里,number
指定了从源数组复制到目标数组的元素数量。
-
操作过程:
-
System.arraycopy
方法会从arr
数组的0
索引位置开始,复制number
个元素到new_arr
数组的0
索引位置。 -
如果
new_arr
数组的长度小于number
,那么将会抛出ArrayIndexOutOfBoundsException
异常,因为目标数组没有足够的空间来存储所有要复制的元素。 -
如果源数组
arr
的长度小于srcPos + length
(在这个例子中是0 + number
),那么同样会抛出ArrayIndexOutOfBoundsException
异常,因为源数组没有足够的元素可供复制。
-
-
注意事项:
- 在使用
System.arraycopy
之前,确保目标数组new_arr
已经被正确初始化,并且有足够的空间来存储要复制的数据。 - 如果源数组和目标数组是同一个数组,并且源位置和目标位置有重叠,那么复制的结果将是未定义的。
- 对于基本数据类型数组和对象数组,
System.arraycopy
都可以正常工作。但是,对于对象数组,复制的是对象的引用,而不是对象本身。
- 在使用
7.抢红包
问题介绍:一个大V直播时发起了抢红包活动,分别有:9.666.188.520.99999五个红包。请模拟粉丝来抽奖,按照先来先得,随机抽取,抽完为止,注意:一个红包只能抽一次,先抽或后抽哪一个红包时随机的。
package JAVA_study.src.Text;import java.util.Random;
import java.util.Scanner;public class Text6 {public static void main(String [] args){//目标:完成抢红包案列的开发int []moneys ={9,666,188,520,99999};start(moneys);}public static void start(int []moneys){Scanner sc = new Scanner(System.in);Random r = new Random();for (int i = 0; i < 5; i++) {System.out.println("请输入任意内容进行抽奖");sc.next(); //等待输入内容按到回车才往下走while(true) {int index = r.nextInt(moneys.length);int money = moneys[index];if (money != 0) {System.out.println("恭喜您,您抽中了红包" + money);moneys[index] = 0;break;}}}System.out.println("活动结束");}
}
8.找素数
问题介绍:判断101-200之间有多少个素数,并输出所有素数
package JAVA_study.src.Text;import java.util.Arrays;public class Text7 {public static void main(String[] args){su();}public static void su(){//目标是从101到200之间的素数int sum;int num =0;int [] result = new int [100];int input = 0;for (int i = 101; i <=200; i++) {sum = 0;for (int i1 = 2; i1 < i; i1++) {if(i%i1 == 0){sum++;}}if(sum == 0){result[input++] = i;num++;}}System.out.println("共有素数"+num+"个");for (int i = 0; i < num; i++) {System.out.println(result[i]+" ");}}}
教学中提供的是信号位思想。使用flat来进行判断。
for (int i = 101; i <=200; i++) {boolean flat = true;for (int i1 = 2; i1 < i; i1++) {if(i%i1 == 0){flat = false;}}if(flat){result[input++] = i;num++;}}
9.打印九九乘法表
问题介绍 打印九九乘法表
public class MultiplicationTable { public static void main(String[] args) { // 外层循环控制行 for (int i = 1; i <= 9; i++) { // 内层循环控制列 for (int j = 1; j <= i; j++) { // 打印乘法表的一项,注意这里j和i的顺序决定了是横向打印还是纵向打印 System.out.print(j + "*" + i + "=" + (i * j) + "\t"); } // 每完成一行的打印后,输出一个换行符以开始新的一行 System.out.println(); } }
}
10.模拟双色球
问题介绍:用户投注7个号码,6个红色,1个蓝色。按照和系统随机出的这组号码判断中奖金额。
package JAVA_study.src.Text;import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class Text8 {public static void main(String[] args) {int [] a1 = inputarr();System.out.println(Arrays.toString(a1));int [] a2 = suijiarr();System.out.println(Arrays.toString(a2));cmp(a1,a2);}public static int[] inputarr() {int[] arr = new int[7];Scanner sc = new Scanner(System.in);for (int i = 0; i < 6; i++) {while (true) {System.out.println("请输入第" + (i + 1) + "位红球号码");int num = sc.nextInt();if (num < 1 || num > 33) {System.out.println("号码有误 请检查");} else {if (exist(arr, num)) {System.out.println("输入的号码重复 请重试");} else {arr[i] = num;break;}}}}while (true) {System.out.println("请输入蓝球号码");int num = sc.nextInt();if (num < 1 || num > 16) {System.out.println("号码有误 请检查");} else {arr[6] = num;break;}}return arr;}public static int[] suijiarr() {int[] arr = new int[7];Random r = new Random();for (int i = 0; i < 6; i++) {while (true) {int n = r.nextInt(33)+1;if (!exist(arr, n)) {arr[i] = n;break;}}}while (true) {int n = r.nextInt(17)+1;if (!exist(arr, n)) {arr[6] = n;break;}}return arr;}private static boolean exist( int[] arr, int num){for (int i = 0; i < 7; i++) {if(arr[i] ==0){break;}if (arr[i] == num) {return true;}}return false;}public static void cmp(int []a1,int []a2){int redcount=0,bluecount=0;for (int i = 0; i < 6; i++) {for (int j = 0; j < 6; j++) {if(a1[i] == a2[j]){redcount ++;break;}}}if(a1[6] == a2[6]){bluecount++;}switch(redcount){case 6:if(bluecount == 1){System.out.println("恭喜您中奖 1000万元");break;}else{System.out.println("恭喜您中奖 500万元");break;}case 5:if(bluecount == 1){System.out.println("恭喜您中奖 3000元");break;}else{System.out.println("恭喜您中奖 200元");break;}case 4:if(bluecount == 1){System.out.println("恭喜您中奖 200元");break;}else{System.out.println("恭喜您中奖 10元");break;}case 3:if(bluecount == 1){System.out.println("恭喜您中奖 10元");break;}else{System.out.println("恭喜您中奖 5元");break;}case 2:if(bluecount == 1){System.out.println("恭喜您中奖 5元");break;}case 1:if(bluecount == 1){System.out.println("恭喜您中奖 5元");break;}case 0:if(bluecount == 1){System.out.println("恭喜您中奖 5元");break;}System.out.println("很遗憾 您没有中奖");break;}}}
相关文章:

Java基本语法学习的案例练习
本文是在学习过C语言后,开始进行Java学习时,对于基本语法的一些案例练习。案例内容来自B站黑马编程课 1.HelloWorld 问题介绍;请编写程序输出“HelloWorld”. public class HelloWorld { public static void main(String[] args) { System.out.print…...

FPGA实现LCD12864控制
目录 注意! a) 本工程采用野火征途PRO开发板,外接LCD12864部件进行测试。 b) 有偿提供代码!!!可以定制功能!!!有需要私信!!! c) 本文测试采用…...

mysql 批量执行sql语句脚本
有时候我们需要批量执行多个数据库的创建和数据创建执行可以通过下面脚本批量创建和执行脚本。我们只需要在sql命令行或者客户端执行下面一个脚本批量创建执行多个库的创建和执行 xxxxinit.sql create user root% identified by test; mysql -h 192.168.17.7 -u root -p mysq…...

【Git】Git概述
一、Git的基本概念和特点 基本概念: 仓库(Repository):Git存储代码的基本单位,包含项目的所有文件和历史提交记录。Git支持本地仓库和远程仓库,本地仓库存储在开发者的计算机上,而远程仓库通常…...

【图解网络】学习记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 TCP/IP 网络模型有哪几层?键入网址到网页显示,期间发生了什么?Linux 系统是如何收发网络包的?NAPIHTTP 是什么&#…...

【Vulnhub系列】Vulnhub_Seattle_003靶场渗透(原创)
【Vulnhub系列靶场】Vulnhub_Seattle_003靶场渗透 原文转载已经过授权 原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io) 一、环境准备 1、从百度网盘下载对应靶机的.ova镜像 2、在VM中选择【打开】该.ova 3、选择存储路径࿰…...

java: 错误: 无效的源发行版:17
错误现象: java: 错误: 无效的源发行版:17 背景:在配置一个springboot项目时候,报出这个错误,错误提示信息很简单,很模糊。 排查:百度后,推测大概率就是pom文件的配置问题…...

【Python机器学习】k-近邻算法简单实践——识别手写数字
为了简化理解,需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小32*32的黑白图像,并转换成文本格式 准备数据:将图像转换为测试向量 实际图像存储在trainingDigits的2000个例子和testDigits中的900个测试数据 我们…...

Linux源码阅读笔记14-IO体系结构与访问设备
IO体系结构 与外设通信通常称为输入输出,一般缩写为I/O。在实现外设IO的时候,内核必须处理三个可能出现的问题: 必须根据具体的设备类型和模型,使用各种方法对硬件寻址。内核必须向用户应用程序和系统工具提供访问各种设备的方法…...

只出现一次的数字-位运算
题目描述: 个人题解: 代码实现: class Solution { public:int singleNumber(vector<int>& nums) {int ret 0;for (auto e: nums) ret ^ e;return ret;} };复杂度分析: 时间复杂度:O(n),其中 n…...

pyqt designer使用spliter
1、在designer界面需要使用spliter需要父界面不使用布局,减需要分割两个模块选中,再点击spliter分割 2、在分割后,再对父界面进行布局设置 3、对于两边需要不等比列放置的,需要套一层 group box在最外层进行分割...

【ROS 最简单教程 002/300】ROS 集成开发环境安装 (虚拟机版): Noetic
💗 有遇到安装问题可以留言呀 ~ 当时踩了挺多坑,能帮忙解决的我会尽力 ! 1. 安装操作系统环境 Linux ❄️ VM / VirtualBox Ubuntu20.04 👉 保姆级图文安装教程指路,有经验的话 可以用如下资源自行安装 ITEMREFERENCE…...

防洪评价报告编制方法与水流数学模型建模技术
原文链接:防洪评价报告编制方法与水流数学模型建模技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247610610&idx2&sn432d30cb40ec36160d635603c7f22c96&chksmfa827115cdf5f803ddcaa03a21e3721d6949d6a336062bb38170e3f9d5bd4d391cc36cc…...

【Python学习手册(第四版)】学习笔记10-语句编写的通用规则
个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文较简单,5-10分钟即可阅读完成。介绍Python基本过程语句并讨论整体语法模型通用规则(冒号、省略、终止、缩进、其他特殊情况࿰…...

Flink笔记整理(五)
Flink笔记整理(五) 文章目录 Flink笔记整理(五)七、处理函数(最底层最常用最灵活)7.1基本处理函数(ProcessFunction)处理函数的功能和使用ProcessFunction解析 7.2按键分区处理函数&…...

数据分析概要【数据分析---偏企业】
各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 数据分析概要前 必看 Python 初阶 Python–语言基础…...

PDF编辑器大分享,这三款加速PDF编辑!
嘿,各位办公室的小伙伴们,今儿咱们来聊聊那些让咱们文员生活变得更加轻松愉快的神器——PDF编辑器!作为每天跟文档打交道的“文字魔术师”,选对工具那可真是事半功倍啊。今天,我就从我的亲身体验出发,给大伙…...

Python --Pandas库基础方法(2)
文章目录 Pandas 变量类型的转换查看各列数据类型改变数据类型 重置索引删除行索引和切片seriesDataFrame取列按行列索引选择loc与iloc获取 isin()选择query()的使用排序用索引排序使用变量值排序 修改替换变量值对应数值的替换 数据分组基于拆分进行筛选 分组汇总引用自定义函…...

《Programming from the Ground Up》阅读笔记:p75-p87
《Programming from the Ground Up》学习第4天,p75-p87总结,总计13页。 一、技术总结 1.persistent data p75, Data which is stored in files is called persistent data, because it persists in files that remain on disk even when the program …...

Python面试整理-常用标准库
Python的标准库包含了大量的模块和包,支持各种编程任务,从文件处理、数据序列化,到网络编程等。这些模块预安装在Python中,无需额外安装就可以使用。以下是一些非常有用且常用的标准库模块: 1. os 用于与操作系统进行交互,包括文件和目录管理操作。 import os # 获取当前…...

halcon_C#联合halcon打开摄像头
1. 创建halcon项目 -> 2.测试连接 -> 3. 在halcon中打开摄像头成功 -> 4. 插入代码 -> 5. 导出为.cs文件 6. 创建VS项目 -> 7.将action部分代码嵌入winform -> 8. 编写代码 -> // 导入HalconDotNet命名空间,这是用于Halcon图像处理的…...

无标题栏窗口通过消息模拟拖动窗口时,无法拖动的一个原因
在使用DUI库或者web控件来做窗口和UI时,常常遇到一个问题:整个窗口如果设置了CAPTION区域,那么在CAPTION区域中,web页面的内容无法正常响应鼠标事件,如果不设置CAPTION区域,那么对于窗口的拖动又有影响。在…...

每天一个数据分析题(四百五十四)- 调研问卷
选择题是设计市场调查问卷时常用的题目类型,关于多选题和单选题的优缺点,以下说法不正确的是? A. 多选题相比单选题提供的信息量大。 B. 单选题提供的信息量相对较少,但比较便于后期编码和统计分析。 C. 单选题和多选题可以同时…...

红酒与家居:打造优雅生活空间
在繁忙的都市生活中,我们渴望拥有一处宁静而优雅的家居空间,那里不仅是我们休憩的港湾,更是我们品味生活、享受时光的地方。当定制红酒与家居设计相遇,它们便共同绘制出一幅充满韵味与格调的生活画卷。今天,就让我们一…...

未来生成式 AI 的发展方向,是 Chat 还是 Agent?
什么是生成式AI? 生成式人工智能(Generative AI)是一种人工智能技术,它能够基于已有的数据模式和结构生成新的数据实例,这些实例可以是文本、图像、音频、视频或任何其他类型的数据。这种技术通常依赖于复杂的算法&am…...

powershell@日期和时间命令和对象
文章目录 abstract获取当前日期和时间格式化日期和时间日期计算👺创建自定义日期和时间👺**[datetime] 类型**及其构造函数缺省值计算日期差异获取特定部分的日期和时间比较日期和时间 常用日期操作总结表时间间隔 TimeSpan 👺创建TimeSpan对…...

【Golang 面试 - 基础题】每日 5 题(八)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...

LeetCode 算法:在排序数组中查找元素的第一个和最后一个位置 c++
原题链接🔗:在排序数组中查找元素的第一个和最后一个位置 难度:中等⭐️⭐️ 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标…...

会话存储、本地存储,路由导航守卫、web会话跟踪、JWT生成token、axios请求拦截、响应拦截
1、会话存储、本地存储 前端浏览器中存储用户信息,会话存储、本地存储、cookie 会话存储(sessionStorage):会话期间存储,关闭浏览器后,数据就会销毁 sessionStorage.setItem("account",resp.d…...