java基础编程

这个是我用来总结学到的,有c语言基础,但不多。

对于本章的运算符,在c语言里面学过,所以就没有太仔细看,具体的看课本就可以啦,把课本当成字典查阅即可,不用全背下来。

在这里,逻辑运算符需要特别注意:

(与&)与  (短路与&&) 区别:短路与左边为假,则不进行右边的运算啦。

逻辑或跟短路或也类似。

选择结构语句

if语句,if...else..语句的使用,switch语句的使用,记住他结尾要加一个default结束语句。

对应的有一个练习:小明可以买什么【案例2-2】

对应的练习可以在论坛找。(应为这个是写给我自己看的)

循环语句

while语句,do..while语句,for语句他们之间可以互相嵌套,使用break语句,可以暂停他们,跳出离他最近的循环语句。continue语句:他结束的是本次的循环,他不跳出循环,只是停止本次循环。

到这里对应的练习:

超市购物程序设计【2-3】:

这个练习可以在网上找到答案。

为新员工分配部门【2-4】:

源代码:

import java.util.Scanner;

public class anli24 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("输入一下语言:Java,c#,asp.net,html");
		System.out.println("请输入你的姓名");
		Scanner bumen=new Scanner(System.in);
		String a=bumen.nextLine();
		System.out.println("请输入你想去的部门");
		Scanner name=new Scanner(System.in);
		String b=name.nextLine();
		
		switch(b){
		case "Java":
			System.out.println("名字:"+a+"Java程序开发部门");
			break;
		case "c#":
			System.out.println("名字:"+a+"c#程序开发部门");
			break;
		case "asp.net":
			System.out.println("名字:"+a+"asp.net程序开发部门");
			break;
		case "html":
			System.out.println("名字:"+a+"前端程序开发部门");
			break;	
		default:
			System.out.println("对不起,没有适合你的部门");
			break;
		}

	}

}

这个案例很简单,就是通过键盘输入对应的关键字,然后使用switch语句实现匹配。

在这个案例我发现switch语句还可以使用关键字来匹配。

剪刀石头布【2-5】:

源代码:

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

public class shitoujiandaobu25 {
    static int b=0;//记录电脑的胜利次数 
	static int a = 0; //你的胜利次数
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("--------石头剪刀布的游戏---------");
		System.out.println("1.剪刀,2。石头,3.布");
		Scanner str=new Scanner(System.in);
		
		
		for(int i=0;i<5;i++) {
			System.out.println("次数:"+i);
			System.out.println("请输入你的出拳");
			String choose=str.next();
			
			int num=new Random().nextInt(3)+1;
			
			if(choose.equals("剪刀")) {
				if(num==1) {
					System.out.println("电脑出的是剪刀");
					System.out.println("这场平局");
				}else if(num==2) {
					System.out.println("电脑出的是石头");
					System.out.println("你输啦");
					b++;
				}else {
					System.out.println("电脑出的是布");
					System.out.println("你赢啦");
					a++;
				}
			}else if(choose.equals("石头")) {
				if(num==1) {
					System.out.println("电脑出的是剪刀");
					System.out.println("你赢");
					a++;
				}else if(num==2) {
					System.out.println("电脑出的是石头");
					System.out.println("平");
					
				}else {
					System.out.println("电脑出的是布");
					System.out.println("你输啦");
					b++;
				}
				
				
			}else if(choose.equals("布")) {
				if(num==1) {
					System.out.println("电脑出的是剪刀");
					System.out.println("你输");
					b++;
				}else if(num==2) {
					System.out.println("电脑出的是石头");
					System.out.println("你赢啦");
					a++;
					
				}else {
					System.out.println("电脑出的是布");
					System.out.println("平局");
				}
		}

	}
		int c=5-(a+b);
		System.out.println("电脑赢啦"+b+"次");
		System.out.println("你赢啦"+a+"次");
		System.out.println("平局"+c+"次");

}
}

这个案例使用啦循环语句与选择结构语句的嵌套,电脑端的出拳是随机的,需要创造随机数:使用到random().nextint()语句,在这里,nextint括号里面的数如果为3,则重0—2中任意选择一个数。

根据题目要求,这里的随机数要取1.2.3,所以就+1.其他没有什么新奇的啦。

方法以及数组:

方法就跟c语言的函数类似,它的基本格式在其他地方有,我就不介绍啦。就将他的注意点吧,比较需要注意的就是修饰符,与返回类型。后面会将修饰符的,返回类型如果是void就不用写return。

方法的重载:就是方法名可能相同,参数,或者返回类型不同,接下来看案例:

//方法重载的案例:名字相同,但是形参或者返回类型不同
public class exanple21 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int sum1=add(1,2);
		int sum2=add(1,2,3);
		double sum3=add(2.5,2.65);
		System.out.println("sum1="+sum1);
		System.out.println("sum2="+sum2);
		System.out.println("su3="+sum3);
	}
	public static int add(int x,int y) {
		return x+y;
	}
	public static double add(double x,double y) {
		return x+y;
	}
	public static int add(int x,int y,int z) {
		return x+y+z;
	}
}

接下来就讲解数组:

数组的定义,以及new出数组对象,在下面的案例会有演示:

int[] arr只是声明啦数组,还需要new出数组然后设定长度。

//如何定义数组,并访问数组中的元素
public class shuzhu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr;
		arr =new int[3];
		System.out.println("arr[0]="+arr[0]);
		System.out.println("arr[1]="+arr[1]);
		System.out.println("arr[2]="+arr[2]);
		System.out.println("arr.length="+arr.length);
	}

}

对数组赋值:

分为两种:

1:动态初始化:你指定啦数组的长度但是没有给他指定的值,所以系统自动根据他的类型赋值给他。

2:静态初始化:int[] arr={1,2,3};

类似这样的。

注意数组的索引:数组的索引就是根据他的下表找到对应的元素。

//通过索引的方式遍历数组
public class shuzhuchanzuo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr= {1,2,3,4,5};
		for(int i=0;i<arr.length;i++) {
			System.out.println("arr[i]="+arr[i]);
	}

}
}

类似这样,数组的长度为:arr.length。但是数组下标重0开始的。

所以索引范围因该在:0到arr.length-1之间。

超出范围就会溢出,产生错误。后面练习会有讲到。

接下来讲解数组的常用的操作:
数组的遍历:

​
//通过索引的方式遍历数组
public class shuzhuchanzuo1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr= {1,2,3,4,5};
		for(int i=0;i<arr.length;i++) {
			System.out.println("arr[i]="+arr[i]);
	}

}
}

​

数组的排序:
这里用到冒泡排序:
 

//冒泡排序
public class shuzhuchaozuo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr= {1,8,9,6,3,17,65};
		System.out.print("排序前的元素排序:");
		printarr(arr);
		bubbleSort(arr);
		System.out.print("排序后的元素");
		printarr(arr);
	}
	//形参列表的名字,需要与for循环的数值长度名字相同
	public static void printarr(int[] q) {
		for(int i=0;i<q.length;i++) {
			System.out.print(q[i]+" ");
		}
		System.out.print("\n");
	}
	public static void bubbleSort(int[] arr) {
		for(int i=0;i<arr.length-1;i++) {
			//arr.length-i:减去已经排序过的长度
			for(int o=0;o<arr.length-i-1;o++) {
				if(arr[o]>arr[o+1]) {
					int temp=arr[o];
					arr[o]=arr[o+1];
					arr[o+1]=temp;
				}
			}
			System.out.print("第"+(i+1)+"排序后:");
			printarr(arr);
		}
		
	}

}

冒泡排序是数据结构的内容,原文链接:https://blog.csdn.net/qq_41679818/article/details/90296399

这里讲解的比较清晰。

接下来就是二维数组:
我们可以通过案例来讲解

//统计一个公司三个销售小组当中每个小组的总销售额和整个公司的销售额
public class erweishuzhuanli30 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[][] arr=new int[3][];
		arr[0]=new int[] {21,11};
		arr[1]=new int[] {32,63,65};
		arr[2]=new int[] {36,98,65,52};
		
		int sum=0;
		for(int i=0;i<arr.length;i++) {
			int groupSum=0;
			for(int j=0;j<arr[i].length;j++) {
				groupSum=groupSum+arr[i][j];
				
			}
			sum=groupSum+sum;
			System.out.println("第"+(i+1)+"小组的销售总额为"+groupSum+"万元");
			
			
		}
		System.out.println("总销售总额为"+sum+"万元");
		
		

	}

}

他的定义方法就在案例里面,arr[0]这里表示二维数组的一维。

遍历二维数组需要使用两个for循环。

接下来就是讲解案例:
登陆注册【2-6】:

//总结今天的实验,因为粗心漏,定义啦二位数组的类型为int,赋值以及判断的时候,就出错,赋值为String类型,arr【】【】!=null也会报错
//具体的思路就是,把输入选择功能都放在while循环里面,这样就可以无线的输入使用功能。
//可以定义一个二维数组来存密码和账号,arr[10][0]保存账号,arr[10][1]保存密码。在比较账号密码是否相同时,可以用一个String变量,用equals方法来实现,使用for循环,来一个一个的比较;

import java.util.Scanner;

//简单的登录注册
public class anli26 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[][] arr=new String[10][2];
		Scanner str=new Scanner(System.in);
		while(true) {
			System.out.println("欢迎进入登录注册功能");
			System.out.println("输入相应的编号,选择想要的功能");
			System.out.println("1.登录功能/t/t2.注册功能/t/t3.查看功能4.推出系统");
			int i1=str.nextInt();
			switch(i1) {
			case 1:
				System.out.println("请输入账号");
				String zhanghao=str.next();
				System.out.println("请输入密码");
				String mima=str.next();
				for(int j=0;j<arr.length;j++) {
					if(arr[j][0] != null&&zhanghao.equals(arr[j][0])&&mima.equals(arr[j][1])) {
						System.out.println("登录成功");
						break;
					}else {
						System.out.println("账号或密码错误");
						break;
					}
					
				}
				break;
				
			case 2:
				System.out.println("请输入账号");
				String zhanghao1=str.next();
				String mima1=str.next();
				for(int p=0;p<arr.length;p++) {
					if(arr[p][0]==null) {
						arr[p][0]=zhanghao1;
						arr[p][1]=mima1;
						break;
					}
				}
				break;
			case 3:
				System.out.println("账号/t/t密码");
				for(int b=0;b<arr.length;b++) {
					System.out.println(arr[b][0]+"/t/t"+arr[b][1]);
					System.out.println();
					
				}
	     	break;
			
			case 4:
				System.out.println("by");
				System.exit(0);
				
				
				break;
				
				default:
					System.out.println("输入有误");
					break;
			}
			
		}
		
		

	}

}

抽取幸运观众【2-7】:
 

import java.util.Random;
import java.util.Scanner;
//在本练习里面,遇到最大的问题就是数组溢出问题,数组长度3,下表就从012.这个时候就需要注意点他。random().next()方法,也类似,参数为3,就012,不包括3.
public class anli27 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[] name=new String[3];
		name[0]=null;
		name[1]=null;
		name[2]=null;
		System.out.println("------抽取幸运观众-------");
		System.out.println("请输入三个观众的姓名");
		Scanner str=new Scanner(System.in);
		for(int i=0;i<3;i++) {
			System.out.println("请输入第"+(i+1)+"个观众的姓名");
			String str1=str.next();
				name[i]=str1;
		}
		while(true) {
			System.out.println("1.查看观众姓名\t\t2.选取幸运观众/t/t3.退出系统");
			int str2=str.nextInt();
			switch(str2) {
			case 1:
				System.out.println("姓名");
				for(int i=0;i<name.length;i++) {
					System.out.println(name[i]);
				}
				break;
			case 2:
				int num=new Random().nextInt(3);
				System.out.println("抽取到的幸运观众序号为"+(num+1));
				System.out.println("幸运观众为"+name[num]+"先生");
				break;
			case 3:
				System.out.println("谢谢回顾");
				System.exit(0);
				break;
			default:
				System.out.println("对不起,你输入的序号有误,请重新输入");
				break;
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灭掉c与java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值