equals的使用
/**字符串属于对象而非基本数据类型。
* 不能使用==是判断两个字符串内容是否相同,==判断的将是两个字符串对象的内存地址,而非字符串内容
* equals()判断两个字符串内容是否相同
* */
public static void denglu(){
Scanner scan=new Scanner(System.in);//创建扫描器
System.out.println("登录名:");
String username=scan.nextLine();//接受登录名
System.out.println("输入密码:");
String password=scan.nextLine();//接受密码
if(!username.equals("mr")){
System.out.println("用户名非法");
}else if(!password.equals("susheng")){
System.out.println("密码非法");
}else{
System.out.println("登录成功");
}
}
switch使用
/**switch多分支语句的使用,该语句只支持对常量的判断,而常量只能是Java的基本数据类型,虽然String类的字符串对象进行判断,
* 可以对字符串的哈希码进行判断
* case是分支
* */
//
public static void dumen(){
Scanner scan=new Scanner(System.in);
System.out.println("新员工");
String name=scan.nextLine();
System.out.println("员工编程语言");
String lang=scan.nextLine();
switch(lang.hashCode()){
case 3254818: //java的哈希码
case 2301506: //Java的哈希码
case 2269730://Java的哈希码
System.out.println("员工"+name+"分配java部门");
break;
case 3104://c#
case 2112://C#
System.out.println("员工"+name+"分配C#部门");
break;
case -709190099://asp.net
case 955463181://Asp.net
System.out.println("员工"+name+"分配Asp.net部门");
break;
default:
System.out.println("员工"+lang+"语言的程序开发人员");
}
}
//商品打折
public static void dazhe(){
float money=1170;
String rebate="";
if(money>500){
int grade=(int) (money/200); //等级
switch(grade){
case 1:
rebate="9.5折";
break;
case 2:
rebate="9折";
break;
case 3:
rebate="8.5折";
break;
case 4:
rebate="8.3折";
break;
case 5:
rebate="8折";
break;
case 6:
rebate="7.8折";
break;
case 7:
rebate="7.5折";
break;
case 8:
rebate="7.3折";
break;
case 9:
rebate="7折";
break;
case 10:
rebate="6.5折";
break;
default:
}
}
System.out.println("你的累计消费金额为:"+money);//输出消费金额
System.out.println("你将享受:"+rebate+"优惠!");//这出折扣比例
}
自增自减运算
在这里插入代码片
/**
* 自增自减运算符分前置和后置两种:
* ++index,会先将index的值递增
* index++ 首先使用该变量的值,然后再把变量值递增
* while(){}
* 条件表达式:决定是否进行循环的表达式,其结果为boolean类型,也就是其结果只能是true或false
* 语句序列:也就是循环体,在条件表达式的结果为true是,充分执行
*
* */
public static void niao(){
String [] aves=new String[]{"白鹭","黄鹂","鹦鹉","乌鸦","喜鹊","布谷鸟","斑鸠","百灵鸟","麻雀","黄鹤","凤凰","孔雀","大雁"};
int index=0;//创建索引变量
System.out.println("鸟:");
while(index<aves.length){//遍历数组
System.out.println(aves[index++]);//自增索引值
}
}
三角形的公式
/**
* 三角形的公式包括两部分:
* 一部分是两侧数值都是1,,也就是说二维数组的arr[0][0],arr[i][0]或者arr[i][i]的元素值为1,
* 另一部分是其他位置的数值是其他位置的数值是其正气方的数值与左上角数值之和,
* 二就是arr[][]=arr[][]+arr[i-1][j]+arr[i-1][j-1]
*
*
* **/
public static void erwei(){
int arr[][]=new int[10][];//创建二位数组
//遍历二位数组的第一层
System.out.println("三角形的公式");
for(int i=0;i<arr.length;i++){
arr[i]=new int[i+1];//初始化第二层数组的大小
//遍历第二层数组
for(int j=0;j<=i;j++){
if(i==0||j==0||j==i){//将二测的数组元素赋值为1
arr[i][j]=1;
}else{//其他数值通过公式计算
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
System.out.print(arr[i][j]+"\t");//输出数组元素
}
System.out.println();//换行
}
}
嵌套for循环
/**
阙套方法for
*/
public static void chengfa(){
System.out.println(" 阙套方法for ");
for(int i=1;i<9;i++){
for(int j=1;j<=i;j++){//第二层循环控制变量与第一层最大索引相等
System.out.print(j+"*"+i+"="+i*j+"\t");//不换行
}
System.out.println();
}
}
while的使用
/**
* while
* BigDecimal类
* 算术、标度操作、舍入、比较、哈希算法和格式转换。toString() 方法提供 BigDecimal 的规范表示形式
* 对于高精度要求或者运算数较大的计算,由BigDecimal实现,否则无法保证浮点数的精度,无法超出其表示范围的数字进行运算。
* add()方法可以实现加法运算
* multiply()可以实现乘法运算
*
* */
public static void jiafa(){
System.out.println("由BigDecimal实现 ");
BigDecimal sum=new BigDecimal(0.0);//和 值为 1,标度为 0。
BigDecimal factorial=new BigDecimal(1.0);//阶乘项阶乘的和
int i=1;
while(i<=20){
sum=sum.add(factorial);//累加各项阶乘的和
++i;//i加1
factorial=factorial.multiply(new BigDecimal(1.0/i));//计算阶乘项
}
System.out.println("1+1/2!+1/3!.....1/20!的计算结果等于:\n"+sum);//输出计算结果
}
双层for循环
/**
* 使用双层for循环分别输出菱形的上部分与下半部分
* for循环语句的阙套和if...else语句,其中, if...else语句用于控制菱形中心位置不输出*好,即输出空闲菱形
* */
public static void kongLing(int size){
System.out.println("菱形 ");
if(size%2==0){//计算菱形大小
size++;
}
for(int i=0;i<size/2+1;i++){
for(int j=size/2+1;j>i+1;j--){
System.out.print(" ");//输出左上角位置的空白
}
for(int j=0;j<2*i+1;j++){
if(j==0||j==2*i){
System.out.print("*");//输出菱形上半部边缘
}else{
System.out.print(" ");//输出菱形上半部边缘
}
}
System.out.println("");//换行
}
for(int i=size/2+1;i<size;i++){
for(int j=0;j<i-size/2;j++){
System.out.print(" ");//输出左下角位置的空白
}
for(int j=0;j<2*size-1-2*i;j++){
if(j==0||j==2*(size-i-1)){
System.out.print("*");//输出菱形下半部边缘
}else{
System.out.print(" ");//输出菱形下半部边缘
}
}
System.out.println("");//换行
}
}
break的使用
/**
* 终止循环
* 应用break语句中断单层循环和中断双层for循环
* */
public static void BreakCyc(){
System.out.println("\n------------中断单层循环的例子------------------------");
String [] arr=new String[]{"白鹭","丹顶鹤","黄鹂","乌鸦","鹦鹉","喜鹊","老鹰","布谷鸟","老鹰","灰文鸟","老鹰","百灵鸟"};
System.out.println("第一只老鹰之前,告诉我都有什么鸟");
for(String str:arr){//for遍历数组
if(str.equals("老鹰"))//如果遇到老鹰
break; //中断循环
System.out.println("有:"+str+" ");//否则输出数组元素
}
System.out.println("\n------------中断双层循环的例子------------------------");
int[][] arr2=new int[][]{{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35},{41,42,43,44,45}};
System.out.println("考试成绩:\n英语\t数学\t生物\t地理\t历史");
No1:for(int[] is:arr2){//遍历成绩表格
for(int i:is){
System.out.println(i+"\t"); //输出成绩
if(i<60){//
System.out.println("\n等, "+i+"分的是什么?这个为什么不及格?"); //输出成绩
break No1;
}
}
System.out.println();
}
}
/**
* 终止循环
* break:
* contiue: for,while,do...while循环语句中,用于让程序直接跳过其后面的语句,进行下一次循环
*
* */
public static void CysFiler(){
String [] arr=new String[]{"白鹭","丹顶鹤","黄鹂","乌鸦","鹦鹉","喜鹊","老鹰","布谷鸟","老鹰","灰文鸟","老鹰","百灵鸟"};
System.out.println("老鹰捉走");
int endtext=0;
for(String str:arr){ //for循环遍历数组
if(str.equals("老鹰")){//如果遇到老鹰
System.out.println("发现一只老鹰,已经捉到笼子里");
endtext++;
continue;//中断循环
}
System.out.println("鸟类,发现了:"+str);//否则输出数组元素
}
System.out.println("一共捉到了:"+endtext+"只老鹰");//否则输出数组元素
}