目录 1.条件语句 1.一维数组 1.双色球 流程控制 2.switch 多重选择语句 : 3.while循环 4.do/while循环 5.for循环 6.中断控制语句 数组 数组下标int[] arr = new int[10]; 要想获得数组中的元素个数,可以使用 array.length。 数组常用算法:冒泡排序和二分查找: 下面展示一个 总结练习小代码 程序思路:定义数组存放红球和蓝球号码范围,然后使用random生成随机0到32的下标,产生6个不重复随机数并将系统随机生成的6个数据放在数组中与用户输入的进行对比,满足中奖条件则输出。 2.五子棋 程序思路:(1)绘制棋盘:首先绘制棋盘采用二维数组创建一个16*16的二维数组int[][] checkerboard = new int [16][16];将首行首列遍历一遍覆盖0输出0-15打印棋盘。流程控制
2.switch多重选择语句
3.while循环
4.do/while循环
5.for循环
6.中断控制语句数组
2.多维数组练习代码
2.五子棋
1.条件语句
(1)条件语句几种格式:
if(条件语句){…}
if (条件语句){…}else{…}
if (条件语句){…}else if(条件语句){…}
if (条件语句){…}else if(条件语句){…}else{…}
下面展示一些 条件语句练习代码
。 package day02; /** * if语句练习*/ import java.util.Scanner; public class Demo1 { public static void main(String[] args) { System.out.println("请输入考试成绩:"); Scanner input = new Scanner(System.in); int s = input.nextInt(); /* if(s<60) { System.out.println("你的成绩有待提高,加油把骚年"); }else{ System.out.println("成绩不错,继续努力!"); }*/ if(s<0 || s>120){ System.out.println("考试成绩不存在"); }else if(s>90){ System.out.println("成绩优秀,干的漂亮"); }else if(s>80){ System.out.println("成绩良好,继续保持"); }else if(s>70){ System.out.println("成绩合格,多加努力"); }else { System.out.println("成绩不合格,寻找原因"); } } }
格式:
switch(表达式){
case 取值 1: 语句块 1;
break;
case 取值 n: 语句块 n;
break;
default: 语句块 n+1;
break;
}
下面展示一些 练习代码
。package day02; /** * switch语句练习*/ import java.util.Scanner; public class Demo2 { public static void main(String[] args) { System.out.println("请输入一个月份(1-12月):"); Scanner input = new Scanner(System.in); int text=input.nextInt(); switch (text) { case 1: case 2: case 3: System.out.println("春季"); break; case 4: case 5: case 6: System.out.println("夏季"); break; case 7: case 8: case 9: System.out.println("秋季"); break; case 10: case 11: case 12: System.out.println("冬季"); break; default: System.out.println("输入有误,请检查"); break; } } }
符合条件,循环继续执行;否则,循环退出 特点:先判断,再执行
语法格式:while(条件表达式){
//语句块;
}
下面展示一些 练习代码小例子
。例子:录入班级人数和学员成绩,计算班级学员的平均成绩 int sum = 0; int score = 0; int avg = 0; int studentNum = 20; while(i<=studentNum){ System.out.print("请输入第" + i + "位同学的成绩:"); score = input.nextInt(); sum = sum + score; i++; } avg = sum / stuNum ;
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断
语法格式:
do { 循环操作 }while ( 条件表达式);
下面展示一些 小例子
。 例子:首先计算退休账户中的余额,然后再询问是否打算退休: do{ balance += payment; double interest = balance * interestRate / 100; balance += interest;Year++; // print current balance// ask if ready to retire and get input }while (input. equals ("N")); 只要用户回答“ N”,循环就重复执行。这是一个需要至少执行一次的循环, 因为用户必须先看到余额才能知道是否满足退休所用。
语法格式:for(初始化参数;判断条件 ;更新循环变量){ 循环体; }
下面展示一些 小例子
。// A code block var foo = 'bar';
例子:计算抽奖中奖的概率。如果必须从 1 ~ 50 之间的数字中取 6 个数字来抽奖, 那么会有 (50 x 49 x 48 x 47 x 46 x 45)/ (1 x 2 x 3 x 4 x 5 x 6) 种可能的结果, 所以中奖的几率是 1/15890700。 public class LotteryOdds { public static void main(String口 args) { Scanner in = new Scanner(System.in); System,out.print("How many numbers do you need to draw? "); int k = in.nextlnt(); System.out.print("What is the highest number you can draw? "); int n = in.nextlnt(); int lotteryOdds = 1; for (int i = 1; i <= k; i++){ lotteryOdds = lotteryOdds * (n - i + 1) /i; System.out.println("Your odds are 1in " + lotteryOdds + Good luck!"); } } }
break和continue
break:用于终止本轮所有次循环。
continue:用于终止本轮本次循环。
下面展示一些 例子
。for( int i=0;i<10;i++){ If(i==5){ break; } System.out.println(i);//执行01234结束 } for( int i=0;i<10;i++){ If(i==5){ continue; } System.out.println(i);//执行012346789结束 }
常用格式 1. 数据类型[] 数组名称 = new 数据类型[数组长度];
常用格式 2. 数据类型[] 数组名称 = {数组内容 1,数组内容 2,…数组内容 n};
arr[5] = 123;
System.out.println(arr[5]);
例如,for (int i = 0; i < a.length; i ++)System.out.println(arr[i]);例子
。package day; public class Demo2 { public static void main(String[] args) { //排序并查找 int [] nums = {1,3,9,5,6,7,15,4,8};//创建数组 int temp;//创建临时变量方便调换 //外层循环控制比较的轮数,次数为length-1 for (int i=0;i<nums.length-1;i++) { //内层循环控制的是每轮比较的次数,第i轮,i从0开始计算 for(int j=0;j<nums.length-i-1;j++) { if(nums[j]>nums[j+1]) { //两两比较,满足移动条件 temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } } for (int i=0;i<nums.length;i++) { System.out.println(nums[i]); } int num = 6;//要查找的数据 int minIndex = 0;//最小下标 int maxIndex= nums.length-1;//最大下标 int centerIndex = (minIndex+maxIndex/2);//中间下标 while(true) { if(nums[centerIndex]>num) { //中间数据较大 maxIndex = centerIndex-1; }else if(nums[centerIndex]<num) { //中间数据较小 minIndex = centerIndex+1; }else { //找到了数据 break; } if(minIndex>maxIndex) { centerIndex = -1; break; } centerIndex = (minIndex+maxIndex/2);//边界发生变化时更新下标 } System.out.println("位置"+centerIndex); } }
数组运用小例子
。// A code block var foo = 'bar';
package day; /** * 班级里所有人有个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数) , * 凡报到3的人退出圈子,问最后留下的当选为班长,问班长是原来第几号的那位。 * @author jade * */ import java.util.Scanner; public class Demo5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入班级总人数:"); int num = input.nextInt(); Boolean [] arr = new Boolean [num];//创建一个班级人数的数组 for (int i = 0; i < arr.length; i++) { arr[i] = true;} // 遍历数组,第一次所有人都在圈内 //报数 int leftCount = num; int countNum = 0;//计数值 int index = 0;//下标 while (leftCount > 1) { if (arr[index] == true) { countNum++;//假设有10个人,第一轮第1,2,4,5,7,8,10为true, if (countNum == 3) { countNum = 0; arr[index] = false;//报到3,6,9时退出圈子,第2轮2,7退出圈子,类推 leftCount--;//总人数第一轮减3; } } index++; if (index == num) { index = 0; } } for (int i = 0; i < num; i++) { if (arr[i] == true) { System.out.println("班长是原来排在第" + (i + 1) + "位的那个。"); } } } }
1.双色球
双色球代码编写笔记:
任务描述: 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01~33,
蓝球号码范围为01~16。双色球每期从33个红球中开出6个号码(不能重复),
从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码,顺序不限。
用户输入红球和蓝球号码,程序输出该用户中几等奖。
代码
。package game; import java.util.Arrays;import java.util. Random;import java.util.Scanner; /** * 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01~33, * 蓝球号码范围为01~16。双色球每期从33个红球中开出6个号码(不能重复), * 从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码 * 和1个蓝球号码,顺序不限。 * 用户输入红球和蓝球号码,程序输出该用户中几等奖。 * * @author jade */ public class Doublecoloarball { public static void main(String[] args) { int [] redArr = {1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30,31,32,33};//数组存放红球1-33的号码 int [] redBall = new int[6];//定义数组存放系统随机生成的红球 int []userRedBall = new int[6];//定义数组存放用户键盘输入的红球 Random random = new Random(); for (int i=0;i<redBall.length;i++) { //生成随机0到32的下标,产生6个不重复随机数 int index = 0; while(true) { index = random.nextInt(33); //返回一个0-32之间的一个随机数 if(redArr[index]!=-1) { //根据产生随机数(数组下标)取出对应的值 redBall[i] = redArr[index]; redArr[index] = -1; break; } } } //用户输入 Scanner sc = new Scanner(System.in); System.out.println("请输入你要打的红色球号码(1-33选,不能重复,选6次):"); for(int i=0;i<userRedBall.length;i++) { userRedBall[i] = sc.nextInt();//捕获用户键盘输入的数组 } int BlueBall = 0;//定义一个变量,存放系统随机生成的蓝色球 int userBlueBall = 0;//定义一个变量,存放用户键盘输入的蓝色球 BlueBall = random.nextInt(16)+1; //获取蓝色球数 System.out.println("请输入你要打的蓝色球号码,1-16之间选,选1次"); userBlueBall = sc.nextInt(); //用户输入的数与随机数相比,判断是否中奖 int redCount = 0 ;//存放正确的红球数 for(int i=0;i<redBall.length;i++) { for(int j=0;j<userRedBall.length;j++) { if(redBall[i]==userRedBall[j]) { redCount++; } } } int blueCount = 0 ;//存放正确的蓝球数 if(BlueBall==userBlueBall) { blueCount++; } //中奖条件 if(blueCount==0 && redCount <= 3){ System.out.println("抱歉,您没有中奖!"); }else if(blueCount==1 && redCount<3){ System.out.println("恭喜你中了六等奖,5块钱!"); }else if((blueCount==1 && redCount==3) || (blueCount==0 && redCount==4)){ System.out.println("恭喜你中了五等奖,10块钱!"); }else if((blueCount==1 && redCount==4) || (blueCount==0 && redCount==5)){ System.out.println("恭喜你中了四等奖,200块钱!"); }else if(blueCount==1 && redCount==5){ System.out.println("恭喜你中了三等奖,3000块钱!"); }else if(blueCount==0 && redCount==6){ System.out.println("恭喜你中了二等奖,500w!"); }else if(blueCount==1 && redCount==6){ System.out.println("恭喜你中了一等奖,1000w!"); }else{ System.out.println("系统有误,中奖无效!"); } System.out.println("本期开奖红球号码:" + Arrays.toString(redBall) + "蓝球号码" + BlueBall); System.out.println("用户选择红球号码:" + Arrays.toString(userRedBall) + "蓝球号码" + userBlueBall); } }
目标: 编程实现控制台版并支持两人对战的五子棋游戏
(1)绘制棋盘
(2)提示黑方(用 1 表示)和白方(用 2 表示)
分别下棋(X,Y 轴位置)并重新绘制棋盘。
(3)每当一方下棋后判断是否获胜 。
(4)提示:采用二维数组来模拟棋盘。
(2) 下棋:创建一个布尔量作为判定条件,首先黑方回合:用户输入x,y坐标并将该坐标原来的0覆盖成1代表黑方棋子,并重新输出棋盘,当每一次下子完毕后,判断是否获胜,当获胜时即输出某方获胜结束游戏。
(3) 判断获胜情况:四种获胜情况即横竖左斜和右斜
代码
。package game; import java.util.Scanner; public class Gobang { public static void main(String[] args) { //绘制棋盘 int[][] checkerboard = new int [16][16]; for(int i=0;i<checkerboard .length;i++) { checkerboard [0][i] = i; checkerboard [i][0] = i; } //提示黑方(用 1 表示)和白方(用 2 表示)分别下棋(X,Y 轴位置)并重新绘制棋盘。 Scanner input = new Scanner(System.in); Show(checkerboard); boolean flag = true; int x; int y; while(true) { do { System.out.println("请输入黑方落子位置例如(4 3):"); x = input.nextInt(); y = input.nextInt(); } while(!IsEmpty(checkerboard,x,y)); checkerboard[x][y] = 1; Show(checkerboard); if(!Win(checkerboard)) { break; } do { System.out.println("请输入白方落子位置例如(4 3):"); x = input.nextInt(); y = input.nextInt(); } while(!IsEmpty(checkerboard,x,y)); checkerboard[x][y] = 2; Show(checkerboard); if(!Win(checkerboard)) { break; } } } //显示棋盘 public static void Show(int[][] checkerboard) { for(int i=0;i<16;i++) { for(int j=0;j<16; j++) { if((i==0 && j>9) || (j==0 && i>9)) { System.out.print(checkerboard[i][j]+""); }else { System.out.print(checkerboard[i][j]+" "); } } System.out.println(); } } //判断黑白双方是否获胜//四种情况横竖左斜右斜 public static boolean Win(int[][] checkerboard) { for(int i=1; i<16; i++) { for(int j=1;j<16;j++) { if(checkerboard[i][j]==1){ if((checkerboard[i][j+1]==1 &&checkerboard[i][j+2]==1 && checkerboard[i][j+3]==1 && checkerboard[i][j+4]==1) //判断横 ||(checkerboard[i+1][j]==1 &&checkerboard[i+2][j]==1 && checkerboard[i+3][j]==1 && checkerboard[i+4][j]==1) //判断竖 ||(checkerboard[i+1][j+1]==1checkerboard[i+2][j+2]==1 && checkerboard[i+3][j+3]==1 && checkerboard[i+4][j+4]==1)// 判断斜; ||(checkerboard[i-1][j+1]==1 &&checkerboard[i-2][j+2]==1 && checkerboard[i-3][j+3]==1 && checkerboard[i-4][j+4]==1)){ // 判断/斜; System.out.println("黑子获胜"); return false; } }else if(checkerboard[i][j]==2){ if((checkerboard[i][j+1]==2&&checkerboard[i][j+2]==2 && checkerboard[i][j+3]==2 && checkerboard[i][j+4]==2) || (checkerboard[i+1][j]==2 && checkerboard[i+2][j]==2 && checkerboard[i+3][j]==2 && checkerboard[i+4][j]==2) || (checkerboard[i+1][j+1]==2 && checkerboard[i+2][j+2]==2 && checkerboard[i+3][j+3]==2&&checkerboard[i+4][j+4]==2|| (checkerboard[i-1][j+1]==1 && checkerboard[i-2][j+2]==1 && checkerboard[i-3][j+3]==1 && checkerboard[i-4][j+4]==1)){ System.out.println("白子获胜"); return false; } } } } return true; } //判断此位置是否已有棋子 public static boolean IsEmpty(int[][]checkerboard, int x, int y) { if(checkerboard[x][y]==0) { return true; } System.out.println("此位置已有棋子,请重新输入"); return false; } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算