循环、数组截取、随机数的产生(2015/7/30)
2015-07-31 21:26
316 查看
循环练习题
基本知识回顾
用if进行判断不同的分支做不同的处理
求奇数和
数组截取
用数组存储随机产生十个数
数组按升序排列
求4行4列数组的对角线和副对角线上的乘积
判断邮箱是否正确
基本知识回顾
用if进行判断不同的分支做不同的处理
求奇数和
数组截取
用数组存储随机产生十个数
数组按升序排列
求4行4列数组的对角线和副对角线上的乘积
判断邮箱是否正确
循环练习题
基本知识回顾
break跳出所有循环,continue跳过本次循环。十进制转二进制,求出二进制中1的个数public static void main(String[] args) { int a = 7; int number = 0; while(a>0){ int b = 1; b = a & b; a >>= 1;//右移相当于除二 if (b == 1) { number++; } } System.out.println(number); }
用if进行判断,不同的分支做不同的处理
Scanner input=new Scanner(System.in); System.out.println("请输入n的值"); int number=input.nextInt(); double sum=0; for(int i=1;i<number+1;i++){ if(i%2==0){//用if判断,奇数则加,偶数则减。 sum-=(1.0/i); }else{ sum+=(1.0/i); } } System.out.println(sum);
求奇数和
计算1+3+5+7+9+……..+(2*21-1)=?int sum=0; for(int i=1;i<21;i++){ int m=1; m=m<<i; sum+=m-1; }
数组截取
public static void main(String[] args) { int array1[] = { 12, 3, 45, 67, 32, 24, 67, 90, 41 }; int array2[] = Arrays.copyOfRange(array1, 2, 6);// 数组截取 System.out.println(Arrays.toString(array2)); }
用数组存储随机产生十个数
public static void main(String[] args) { int[] array1=new int[10]; Random rd=new Random();//创建一个新对象 for(int i=0;i<array1.length;i++) { array1[i]=rd.nextInt(90)+10;//产生随机数 } Arrays.sort(array1); // System.out.println(Arrays.toString(array1));不用for循环输出,而用tostring()输出 for(int i=0;i<array1.length;i++){ System.out.print(array1[i]+"\t"); }
数组按升序排列
public static void main(String[] args) { int array1[] = { 12, 23, 41, 25, 56, 78, 5, 96 }; int array2[] = new int[10]; Arrays.sort(array1); // for(int i=0;i<array1.length;i++){ // System.out.print(array1[i]+"\t"); // } System.out.println(Arrays.toString(array1));//tostring返回指定数组的表示形式 }
求4行4列数组的对角线和副对角线上的乘积
public static void main(String[] args) { int[][] array1 = new int[4][4]; // Scanner input = new Scanner(System.in); Random rd = new Random(); int sum1 = 1; int sum2 = 1; String str = ""; String str1 = ""; for (int i = 0; i < array1.length; i++) { for (int j = 0; j < array1[i].length; j++) { array1[i][j] = rd.nextInt(9); System.out.print(array1[i][j] + "\t"); } System.out.println(); } for (int i = 0; i < array1.length; i++) { for (int j = 0; j < array1[i].length; j++) { if (i == j) { str += "\t" + array1[i][j]; sum1 *= array1[i][j]; } if (i + j == 3) { str1 += "\t" + array1[i][j]; // System.out.print(array1[i][j] + "\t"); sum2 *= array1[i][j]; } } } System.out.println("对角线的数:" + str); System.out.println("对角线的乘积是:" + sum1); System.out.println("副对角线的数:" + str1); System.out.println("副对角线上的乘积是:" + sum2); } //另一种方法 public static void main(String[] args) { int[][] array1 = new int[4][4]; Random rd = new Random(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { array1[i][j] = rd.nextInt(9); } System.out.println(Arrays.toString(array1[i])); } String str1 = ""; String str2 = ""; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (i == j) { str1 += "\t" + array1[i][j]; } if (i + j == 3) { str2 += "\t" + array1[i][j]; } } } int temp = 1; int temp2 = 1; for (int i = 0; i < 4; i++) { temp = temp * array1[i][i]; temp2 = temp2 * array1[i][3 - i]; } System.out.println(str1); System.out.println("对角线上的乘积是:" + temp); System.out.println(str2); System.out.println("副对角线上的乘积是:" + temp2); }
判断邮箱是否正确
public static void main(String[] args) { Scanner input = new Scanner(System.in); String email = input.next(); boolean flag = false; do { if (email.contains("@")) { int index = email.indexOf("@"); String start = email.substring(0, index); boolean isLetterOrNumber = true; for (int i = 0; i < start.length(); i++) { char ch = start.charAt(i); if (!Character.isLetterOrDigit(ch)) { isLetterOrNumber = false; break; } } if (isLetterOrNumber) { System.out.println("开头是以数字或字母开始的"); } else { System.out.println("不是以数字或字母开头的"); System.out.println("不是正确的邮箱"); break; } if (email.contains(".")) { int index1 = email.lastIndexOf("."); String middle = email.substring(index + 1, index1); boolean middleIsLetterOrNumber = true; for (int i = 0; i < middle.length(); i++) { char ch = middle.charAt(i); if (!Character.isLetterOrDigit(ch)) { middleIsLetterOrNumber = false; break; } } if (middleIsLetterOrNumber) { System.out.println("中间是以数字或字母开始的"); } else { System.out.println("中间不是以数字或字母开始的"); System.out.println("不是正确的邮箱"); break; } if (email.endsWith(".com") || email.endsWith(".cn") || email.endsWith(".net")) { System.out.println("是正确的邮箱"); } else { System.out.println("但是后缀不正确,不是正确的邮箱"); } } } else { System.out.println("没有@不是正确的邮箱"); } } while (flag); }
字符 | 说明 |
---|---|
0 | 代表阿拉伯数字,使用特殊字符“0”表示一位阿拉伯数字,如果该位不存在数字,则显示0 |
# | 代表阿拉伯数字,使用特殊字符“#”表示一位阿拉伯数字,如果该位存在数字,则显示字符;不存在数字则不显示 |
. | 小数分隔符或货币小数分隔符 |
- | 负号 |
, | 分组分隔符 |
E | 分隔科学计数法中的位数和指数 |
% |
相关文章推荐
- Selenium IDE简介
- ARM处理器体系架构详细说明
- 黑马程序员-C语言printf和scanf函数中格式控制符使用小结
- 黑马程序员——String类
- dsp之BF531笔记
- linux c++ 高并发tcp服务器架构
- 二分检索的多种应用
- SSH开发——菜鸟那些事儿
- hdu5064 DLX可重复覆盖+二分
- Qt实战之开发CSDN下载助手 (3)(结束篇)
- hdu 3342 Legal or Not(拓扑)
- POJ3258—River Hopscotch—二分法求the largest mimmun
- 多表连接
- [Linux] xargs
- Balanced Lineup---poj3264线段树基础
- 背包问题
- HDU 1171
- java List在arrayList()括号里初始化List
- UVA 439 Knight Moves
- Partition List