java零基础学习笔记(代码+注解+练习)_java语言基础

package day01; //声明包day01(楼+单元)
public class HelloWorld { //声明类HelloWorld(房子)
	//主方法,为程序的入口(大门口)
	//程序的执行从main开始,main结束则程序结束
	public static void main(String[] args) {
		//输出hello
		//1)严格区分大小写
		//2)所有符号必须是英文模式的
		//3)每句话必须以分号结尾
		//4)println():输出并换行   helloworld
		//  print():输出不换行
		System.out.print("hello"); //双引号中的原样输出
		System.out.println("world");
		System.out.println("下雨啦!");
		System.out.println("欢迎大家");
		System.out.println("当日事当日毕");
	}
}






package day02;
//数据类型的演示
public class DataTypeDemo {
	public static void main(String[] args) {
		//类型间的转换:
		int a = 5;
		long b = a; //自动类型转换
		int c = (int)b; //强制类型转换
		
		long d = 5; //自动类型转换
		double e = 5; //自动类型转换(e的值为5.0)
		
		long f = 10000000000L;
		int g = (int)f;
		System.out.println(g); //强转有可能发生溢出
		double h = 56.987;
		int i = (int)h;
		System.out.println(i); //56,强转有可能丢失精度
		
/*
2.1)整数直接量可以直接赋值给byte,short,char,
        但不能超出范围
2.2)byte,short,char型数据参与运算时,
       系统会一律先将其转换为int再运算
*/		
		byte b1 = 5;
		byte b2 = 6;
		//byte b3 = b1+b2; //编译错误,运算时将b1和b2转成int类型,
		                   //两个int相加,结果还是int类型,
		                   //将int赋值给byte,因为不是直接量,
		                   //所以需要强转
		byte b4 = (byte)(b1+b2); //强转的是运算之后的int结果

		
		/*
		//1)int:整型,4个字节,-21个多亿到21个多亿
		int a = 250; //250为整数直接量,默认为int类型
		//int b = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
		//int c = 25.678; //编译错误,整型变量中只能装整数
		System.out.println(5/2); //2
		System.out.println(2/5); //0
		System.out.println(5/2.0); //2.5
		int d = 2147483647; //int的最大值
		d = d+1;
		System.out.println(d); //溢出了,-2147483648(int的最小值)
		
		//2)long:长整型,8个字节,很大很大很大
		//long e = 10000000000; //编译错误,100亿默认为int类型,但超出int范围了
		long f = 10000000000L; //长整型直接量需在数字后加L或l
		long g = 1000000000*2*10L;
		System.out.println(g); //200亿   //练习+下课----3:00继续
		long h = 1000000000*3*10L;
		System.out.println(h); //溢出了
		long i = 1000000000L*3*10;
		System.out.println(i); //300亿,有可能溢出时建议在第1个数字后加L
		*/
		
		/*
		//3)double:浮点型,8个字节,很大很大很大
		double a = 3.14; //3.14为浮点型直接量,默认为double型
		double b=3.0,c=2.9;
		System.out.println(b-c); //0.10000000000000009-舍入误差
		
		//4)boolean:布尔型,1个字节
		boolean d = true;  //true为布尔型直接量
		boolean e = false; //false为布尔型直接量
		//boolean f = 25; //编译错误,布尔型只能取值为true或false
		*/
		
		/*
		//5)char:字符型,2个字节
		char c1 = '女'; //字符女
		char c2 = 'f';  //字符f
		char c3 = '6';  //字符6
		char c4 = ' ';  //空格符
		//char c5 = 女; //编译错误,字符型直接量必须放在单引号中
		//char c6 = ''; //编译错误,必须有字符
		//char c7 = '女性'; //编译错误,只能有一个字符
		
		char c8 = 65; //0到65535之间
		System.out.println(c8); //A,输出时会按变量的数据类型来
		
		char c9 = '\'';
		System.out.println(c9); //'
		*/
	}
}

package day02;
//变量的演示
public class VarDemo {
	public static void main(String[] args) {
		//1.变量的声明:----在银行开帐户
		int a; //声明一个整型的变量,名为a
		int b,c,d; //声明三个整型的变量,名为b,c,d
		//int a; //编译错误,变量不能同名
		
		//2.变量的初始化:----给帐户存钱
		int e = 250; //声明整型变量e并赋值为250
		int f;   //声明整型变量f
		f = 250; //给变量f赋值为250
		
		//3.变量的使用:----用的是帐户里面的钱
		int g = 5;
		int h = g+10; //取出g的值5,加10后,再赋值给变量h
		System.out.println(h);   //输出变量h的值15
		System.out.println("h"); //输出h,双引号中的原样输出
		g = g+10; //在g本身基础之上增10
		System.out.println(g); //15
		
		//System.out.println(i); //编译错误,变量i未声明
		int i;
		//System.out.println(i); //编译错误,变量i未初始化
		
		//4.变量的命名:
		int a1,a_5$,_3c,$_;
		//int a*b; //编译错误,不能包含*号等特殊符号
		//int 1a; //编译错误,不能以数字开头
		int aa = 5;
		//System.out.println(aA); //编译错误,严格区分大小写
		//int class; //编译错误,不能使用关键字
		int 年龄; //允许中文,但不建议(必须杜绝)
		int age; //建议"英文的见名知意"
		int score,myScore,myJavaScore; //建议"驼峰命名法"
		
	}
}

package day03;
//if结构的演示
public class IfDemo {
	public static void main(String[] args) {
		//1)偶数的判断:
		int num = 6;
		if(num%2==0) {
			System.out.println(num+"是偶数");
		}
		System.out.println("over");
		
		//2)满500打8折
		double price = 600.0; //消费金额
		if(price>=500) { //满500
			price *= 0.8; //打8折
		}
		System.out.println("最终消费金额为:"+price);
		
		
		/*
		 * if结构: 1条路
		 * 1)语法:
		 *    if(boolean){
		 *      语句块---------基于条件执行的
		 *    }
		 * 2)执行过程:
		 *    判断boolean的值:
		 *      若为true,则执行语句块
		 *      若为false,则if结束
		 */
	}
}

package day03;
//if...else结构的演示
public class IfElseDemo {
	public static void main(String[] args) {
		//1)奇数、偶数的判断:
		int num = 1;
		if(num%2==0) {
			System.out.println(num+"是偶数");
		}else {
			System.out.println(num+"是奇数");
		}
		System.out.println("over");
		
		//2)满500打8折,不满500打9折:
		double price = 300.0; //消费金额
		if(price>=500) { //满500
			price *= 0.8; //打8折
		}else { //不满500
			price *= 0.9; //打9折
		}
		System.out.println("最终消费金额为:"+price);	
					
		
		/*
		 * if...else结构: 2条路
		 * 1)语法:
		 *    if(boolean){
		 *      语句块1
		 *    }else{
		 *      语句块2
		 *    }
		 * 2)执行过程:
		 *    判断boolean的值:
		 *      若为true,则执行语句块1(整个结束)
		 *      若为false,则执行语句块2(整个结束)
		 * 3)说明: 语句块1和语句块2,必走其中之一
		 */
		
		//问: 块1和块2,有可能同时执行吗?-------不可能
		//问: 块1和块2,有可能同时都不执行吗?---不可能
		
	}
}


package day03;
//运算符的演示
public class OperDemo {
	public static void main(String[] args) {
		/*
		 * 6.条件/三目运算符:
		 *   1)语法:
		 *      boolean?数1:数2
		 *   2)执行过程:
		 *      整个表达式是有结果的,结果要么是数1,要么是数2
		 *      判断boolean的值:
		 *        若为true,则整个表达式的结果为?后面的数1
		 *        若为false,则整个表达式的结果为:后面的数2
		 */
		int a = 5;
		int flag = a>0?1:-1;
		System.out.println(flag); //1
		
		
		
		
		/*
		 * 5.字符串连接运算符:
		 *   1)+:
		 *     1.1)若两边为数字,则做加法运算
		 *     1.2)若两边出现了字符串,则做字符串连接
		 */
		
		int age = 37;
		System.out.println("age="); //age=
		System.out.println(age);    //37
		System.out.println("age="+age); //age=37
		System.out.println("我的年龄是:"+age); //我的年龄是:37
		System.out.println("我今年"+age+"岁了"); //我今年37岁了
	
		String name = "WKJ";
		System.out.println("大家好,我叫"+name); //大家好,我叫WKJ
		System.out.println("大家好,我叫"+name+",今年"+age+"岁了"); //大家好,我叫WKJ,今年37岁了
		
		System.out.println(10+20+""+30); //3030----String
		System.out.println(""+10+20+30); //102030--String
		System.out.println(10+20+30+""); //60------String
		
		
			
		
		
		/*
		 * 4.赋值运算符:
		 *   1)简单赋值运算符:=
		 *   2)扩展赋值运算符:+=,-=,*=,/=,%= (在本身基础之上做操作)
		 *                   注意:扩展赋值自带强转功能
		 */
		    
		/*        
		//面试题:
		short s = 5;
		s += 10; //相当于 s = (short)(s+10);
		//s = s+10; //编译错误,需强转
		            //改正:s=(short)(s+10);
		*/
		/*
		int a = 5;
		a += 10; //相当于a=(int)(a+10)
		System.out.println(a); //15
		a *= 2; //相当于a=a*2
		System.out.println(a); //30
		a /= 6; //相当于a=a/6
		System.out.println(a); //5
		*/
		
		
		
		
		
		/*
		 * 3.逻辑运算符:
		 *   1)&&:短路与(并且),两边都为真则为真,见false则false
		 *        ----当第1个数为false时,发生短路(后面的不执行了)
		 *     ||:短路或(或者),有真则为真,见true则true
		 *        ----当第1个数为true时,发生短路(后面的不执行了)
		 *      !:逻辑非(取反),非真则假,非假则真
		 *   2)逻辑运算是建立在关系运算的基础之上的
		 *     逻辑运算的结果也是boolean型
		 */
		
		/*
		int a=5,b=10,c=5;
		boolean b1 = b>=a && c<b;
		System.out.println(b1);          //true&&true=true
		System.out.println(b<=c && a>b); //false&&false=false
		System.out.println(a==c && b<c); //true&&false=false
		System.out.println(a!=c && b>a); //false&&true=false
		
		System.out.println(); //换行
		System.out.println(b>=a || c<b); //true||true=true
		System.out.println(b<=c || a>b); //false||false=false
		System.out.println(a==c || b<c); //true||false=true
		System.out.println(a!=c || b>a); //false||true=true
		
		System.out.println(); //换行
		boolean b2 = !(a<b);
		System.out.println(b2);     //!true=false
		System.out.println(!(a>b)); //!false=true
		
		boolean b3 = a>b && c++>2;
		System.out.println(b3); //false
		System.out.println(c);  //5,发生短路了

		boolean b4 = a<b || c++>2;
		System.out.println(b4); //true
		System.out.println(c);  //5,发生短路了
		*/
		
		
		
		
			
		
		
		/*
		 * 2.关系运算符:
		 *   1)>(大于)、<(小于)
		 *     >=(大于或等于)、<=(小于或等于)
		 *     ==(等于)、!=(不等于)
		 *   2)关系运算的结果为boolean型
		 *     关系成立则为true,关系不成立则为false
		 */
		
		/*
		int a=5,b=10,c=5;
		boolean b1 = a>b;
		System.out.println(b1);   //false
		System.out.println(c<b);  //true
		System.out.println(b>=a); //true
		System.out.println(a<=c); //true
		System.out.println(a==c); //true
		System.out.println(a!=c); //false
		
		System.out.println(a+c>b);  //false
		System.out.println(a%2==0); //false
		System.out.println(c++>5);  //false--此处c已经变为6了
		System.out.println(c++>5);  //true
		*/
		
		
	
		
		/*
		 * 1.算术运算符:+,-,*,/,%,++,--
		 *   1)%:取模/取余,余数为0即为整除
		 *   2)++/--:自增1/自减1,可在变量前也可在变量后
		 *     2.1)单独使用时,在前在后都一样
		 *     2.2)被使用时,在前在后不一样
		 *           a++的值为a-----(a--的值a)
		 *           ++a的值为a+1---(--a的值为a-1)
		 */
		
		/*
		int a=5,b=5;
		//1)将a++的值5赋值给c
		//2)a自增1变为6
		int c = a++;
		//1)将++b的值6赋值给d
		//2)b自增1变为6
		int d = ++b;
		System.out.println(a); //6
		System.out.println(b); //6
		System.out.println(c); //5
		System.out.println(d); //6
		*/
		/*
		int a=5,b=5;
		int c = a--;
		int d = --b;
		System.out.println(a); //4
		System.out.println(b); //4
		System.out.println(c); //5
		System.out.println(d); //4
		*/
		
		/*
		int a=5,b=5;
		a++; //相当于a=a+1
		++b; //相当于b=b+1
		System.out.println(a); //6
		System.out.println(b); //6
		*/
		/*
		int a=5,b=5;
		a--; //相当于a=a-1
		--b; //相当于b=b-1
		System.out.println(a); //4
		System.out.println(b); //4
		*/
		
		
		
		/*
		System.out.println(5%2); //1,商2余1
		System.out.println(8%2); //0,商4余0----整除
		System.out.println(2%8); //2,商0余2
		*/
	}
}

package day04;
import java.util.Scanner;
//命令解析程序
public class CommandBySwitch {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请选择功能: 1.显示全部  2.查询登录  0.退出");
		int command = scan.nextInt();
		
		switch(command) {
		case 1:
			System.out.println("显示全部记录业务");
			break;
		case 2:
			System.out.println("查询登录业务");
			break;
		case 0:
			System.out.println("欢迎下次再来");
			break;
		default:
			System.out.println("输出错误");
		}
		
	}
}


package day04;
//do...while结构的演示
public class DoWhileDemo {
	public static void main(String[] args) {
		/*
		 * do...while结构:
		 * 1)语法:
		 *    do{
		 *      语句块
		 *    }while(boolean);
		 * 2)执行过程:
		 *    先执行语句块,再判断boolean的值,若为true则
		 *    再执行语句块,再判断boolean的值,若为true则
		 *    再执行语句块,再判断boolean的值,若为true则
		 *    再执行语句块,如此反复,直到boolean为false时循环结束
		 */
	}
}

package day04;
import java.util.Scanner;
//猜数字小游戏
public class Guessing {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
		System.out.println(num); //作弊
		
		//假设num=250
		//300(大),200(小),250(对)
		int guess;
		do {
			System.out.println("猜吧!");
			guess = scan.nextInt();  //1+3
			if(guess>num) {
				System.out.println("太大了");
			}else if(guess<num) {
				System.out.println("太小了");
			}else {
				System.out.println("恭喜你猜对了!");
			}
		}while(guess!=num); //2
		//1)写大小等的提示  2)代数  3)将do..while猜重写一次

	
		
		/*
		//300(大),200(小),250(对)
		System.out.println("猜吧!");
		int guess = scan.nextInt(); //1.
		while(guess!=num) { //2.
			if(guess>num) {
				System.out.println("太大了");
			}else {
				System.out.println("太小了");
			}
			System.out.println("猜吧!");
			guess = scan.nextInt(); //3.
		}
		System.out.println("恭喜你猜对了!");
		*/
	}
}


package day04;
//if...else if结构的演示
public class IfElseIfDemo {
	public static void main(String[] args) {
		/*
		 * if...else if结构: 多条路
		 * 1)语法:
		 *     if(boolean-1){
		 *       语句块1
		 *     }else if(boolean-2){
		 *       语句块2
		 *     }else if(boolean-3){  //2分钟自己想
		 *       语句块3
		 *     }else{
		 *       语句块4
		 *     }
		 * 2)执行过程:
		 *    判断boolean-1,若为true则执行语句块1(结束),若为false则
		 *    再判断boolean-2,若为true则执行语句块2(结束),若为false则
		 *    再判断boolean-3,若为true则执行语句块3(结束),若为false则执行语句块4(结束)
		 * 3)说明:
		 *    语句块1/2/3/4,只执行其中之一
		 */
	}
}




package day04;
import java.util.Scanner; //1.
//Scanner的演示
public class ScannerDemo {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in); //2.
		System.out.println("请输入年龄:");
		int age = scan.nextInt(); //3.
		System.out.println("请输入价格:");
		double price = scan.nextDouble();
		
		System.out.println(age);
		System.out.println(price);
	}
}



package day04;
import java.util.Scanner;
//成绩等级判断
public class ScoreLevel {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入成绩:");
		double score = scan.nextDouble();
		
		//888,-56,95,85,65,45
		if(score<0 || score>100) {
			System.out.println("成绩不合法");
		}else if(score>=90) { //合法
			System.out.println("A-优秀");
		}else if(score>=80) {
			System.out.println("B-良好");
		}else if(score>=60) {
			System.out.println("C-中等");
		}else {
			System.out.println("D-不及格");
		}
	}
}



package day04;
//switch...case结构的演示
public class SwitchCaseDemo {
	public static void main(String[] args) {
		int num = 4;
		switch(num) { //byte,short,int,char,String(JDK1.7开始支持)
		case 1: //if(num==1)
			System.out.println(111);
			break;
		case 2: //以此为入口
			System.out.println(222);
			break; //跳出switch
		case 3:
			System.out.println(333);
			break;
		default: //所有case都未匹配时才执行
			System.out.println(666);
		}
	}
}

package day04;
//while结构的演示
public class WhileDemo {
	public static void main(String[] args) {
		//2)输出9的乘法表:
		int num = 1;
		while(num<=9) {
			System.out.println(num+"*9="+num*9);
			num=num+2;  //num++;
		} 
		System.out.println("over");
		/* 
		 *                   num=1
		 * true  输出1*9=9   num=3
		 * true  输出3*9=27  num=5
		 * true  输出5*9=45  num=7
		 * true  输出7*9=63  num=9
		 * true  输出9*9=81  num=11
		 * false while循环结束
		 * 输出over
		 */
		
		
	
		
		
		/*
		//1)输出10次"行动是成功的阶梯"
		int times = 0;    //1.循环变量的初始化
		while(times<10) { //2.循环的条件
			System.out.println("行动是成功的阶梯");
			times++;      //3.循环变量的改变
		}
		System.out.println("over");
		*/
		/*
		 *            times=0
		 * true  输出   times=1 
		 * true  输出   times=2
		 * true  输出   times=3
		 * true  输出   times=4
		 * ...        times=5/6/7/8
		 * true  输出   times=9
		 * true  输出   times=10
		 * false while循环结束
		 * 输出over
		 */
		
		
		
		
		/*
		 * while结构:
		 * 1)语法:
		 *    while(boolean){
		 *      语句块----------反复执行的代码
		 *    } 
		 * 2)执行过程:
		 *    判断boolean的值,若为true则执行语句块,
		 *    再判断boolean的值,若为true则再执行语句块,
		 *    再判断boolean的值,若为true则再执行语句块,
		 *    如此反复,直到boolean的值为false时循环结束
		 */
	}
}


package day05;
import java.util.Scanner;
//随机加法运算器
public class Addition {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int score = 0; //得分
		for(int i=1;i<=10;i++) { //10次
			int a = (int)(Math.random()*100); //加数a(0到99之间的随机数)
			int b = (int)(Math.random()*100); //加数b(0到99之间的随机数)
			int result = a+b; //存和
			System.out.println("("+i+")"+a+"+"+b+"=?"); //1)出题
			
			System.out.println("算吧!---(提示:输出-1可提前结束)");
			int answer = scan.nextInt(); //2)答题
			
			if(answer==-1) { //3)判题
				break;
			}
			if(answer==result) {
				System.out.println("答对了");
				score += 10; //答对1题加10分
			}else {
				System.out.println("答错了");
			}
		}
		System.out.println("得分为:"+score);
		
	}
}


package day05;
//数组的演示
public class ArrayDemo {
	public static void main(String[] args) {
		//3.数组的访问:---访问的是数组中的元素
		int[] arr = new int[3];
		arr[0] = 100; //给arr中第1个元素赋值为100
		arr[1] = 200; //给arr中第2个元素赋值为200
		arr[2] = 300; //给arr中第3个元素赋值为300
		//arr[3] = 400; //运行时,会发生数组下标越界异常
		System.out.println(arr.length); //3
		System.out.println(arr[arr.length-1]); //输出arr中最后一个元素的值
		
		
		
		
		/*
		//1)数组的定义:
		//声明整型数组arr,包含10个元素,每个元素都是int类型,默认值为0
		int[] arr = new int[10];
		
		//2)数组的初始化:
		int[] arr1 = new int[4]; //0,0,0,0
		int[] arr2 = {2,4,7,9}; //2,4,7,9
		int[] arr3 = new int[] {2,4,7,9}; //2,4,7,9
		int[] arr4;
		//arr4 = {2,4,7,9}; //编译错误,此方式只能声明同时初始化
		arr4 = new int[] {2,4,7,9}; //正确
		*/
	}
}




package day05;
//for结构的演示
public class ForDemo {
	public static void main(String[] args) {
		/*
		//输出9的乘法表,只要不能被3整除的(要1/2/4/5/7/8)
		for(int num=1;num<=9;num++) {
			if(num%3!=0) {
				System.out.println(num+"*9="+num*9);
			}
		}
		*/
		
		/*
		//输出9的乘法表,跳过能被3整除的(3/6/9我不要)
		for(int num=1;num<=9;num++) {
			if(num%3==0) {
				continue; //跳过循环体中剩余语句而进入下一次循环
			}
			System.out.println(num+"*9="+num*9);
		}
		*/
		/*
		 * num=1   输出1*9=9
		 * num=2   输出2*9=18
		 * num=3 
		 * num=4   输出4*9=36
		 * num=5   输出5*9=45
		 * num=6  
		 * num=7   输出7*9=63
		 * num=8   输出8*9=72
		 * num=9 
		 * num=10
		 */
		
		
		
		
		
		for(int num=1;num<=9;num++) {
			if(num==5) { //在某种特殊条件下提前结束循环
				break; //跳出循环
			}
			System.out.println(num+"*9="+num*9);
		}
		
	
		
		/*
		int num=1;
		for(;num<=9;num++) {
			System.out.println(num+"*9="+num*9);
		}
		*/
		/*
		for(int num=1;num<=9;) {
			System.out.println(num+"*9="+num*9);
			num++;
		}
		*/
		/*
		for(;;) { //没有条件的循环就是个死循环
			System.out.println("我要学习...");
		}
		*/
		/*
		for(int i=1,j=5;i<6;i+=2,j-=2) {
			
		}
		*/
		/*
		 * i=1,j=5
		 * i=3,j=3
		 * i=5,j=1
		 * i=7,j=-1
		 */
		
		
		
		
		
		
		/*
		for(int times=0;times<10;times++) {
			System.out.println("行动是成功的阶梯");
		}
		for(int num=1;num<=9;num++) {
			System.out.println(num+"*9="+num*9);
		}
		for(int num=1;num<=9;num+=2) {
			System.out.println(num+"*9="+num*9);
		}
		//for中的循环变量num,作用范围仅在for中
		for(int num=9;num>=1;num--) {
			System.out.println(num+"*9="+num*9);
		}
		*/
		
		/*
		 * 执行过程:
		 * num=9  true  9*9=81
		 * num=8  true  8*9=72
		 * num=7  true  7*9=63
		 * num=6  true  6*9=54
		 * num=5  true  5*9=45
		 * num=4  true  4*9=36
		 * num=3  true  3*9=27
		 * num=2  true  2*9=18
		 * num=1  true  1*9=9
		 * num=0  false for循环结束
		 */
		
		
		
		
		
		/*
		 * for结构:
		 * 1)语法:
		 *    //    1       2      3
		 *    for(要素1 ; 要素2 ; 要素3){
		 *      语句块/循环体    //4
		 *    }
		 * 2)执行过程:
		 *    12432432432432432
		 */
	}
}



package day05;
//求数组元素的最大值
public class MaxOfArray {
	public static void main(String[] args) {
		int[] arr = new int[10];
		for(int i=0;i<arr.length;i++) { //遍历所有元素
			arr[i] = (int)(Math.random()*100); //给每个元素都赋值为:0到99之间的随机数
			System.out.println(arr[i]); //输出每个元素的值
		}
		
		//假设arr的元素为: 23,56,89,4
		int max = arr[0]; //假设第1个元素为最大值
		for(int i=1;i<arr.length;i++) { //遍历剩余元素
			if(arr[i]>max) { //若剩余元素大于max
				max=arr[i];  //则修改max为较大的
			}
		}
		System.out.println("最大值为:"+max);
		//max=23/56/89

		
	}
}




package day05;
//九九乘法表
public class MultiTable {
	public static void main(String[] args) {
		for(int num=1;num<=9;num++) { //控制行
			for(int i=1;i<=num;i++) { //控制列
				System.out.print(i+"*"+num+"="+i*num+"\t");
			}
			System.out.println(); //换行
		}
		/*
		 * num=3
		 *  i=1 1*3=3
		 *  i=2 2*3=6
		 *  i=3 3*3=9
		 *  i=4 false
		 *  换行
		 * num=2
		 *  i=1 1*2=2
		 *  i=2 2*2=4
		 *  i=3 false
		 *  换行
		 * num=1
		 *  i=1 1*1=1
		 *  i=2 false
		 *  换行
		 */
		
	}
}

package day06;
import java.util.Arrays;
//数组的演示
public class ArrayDemo {
	public static void main(String[] args) {
		//8)数组的排序:
		int[] arr = new int[10];
		for(int i=0;i<arr.length;i++) {
			arr[i] = (int)(Math.random()*100);
			System.out.println(arr[i]);
		}
		
		Arrays.sort(arr); //对arr升序排列
		
		System.out.println("升序后:");
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
		
		System.out.println("降序后:");
		for(int i=arr.length-1;i>=0;i--) {
			System.out.println(arr[i]);
		}
		
		
		
		
		
		/*
		//7)数组的复制:
		int[] a = {10,20,30,40,50};
		//数组的扩容(创建了一个更大的新数组,并将源数组数据复制进去)
		a = Arrays.copyOf(a,a.length+1);
		for(int i=0;i<a.length;i++) {
			System.out.println(a[i]);
		}
		*/
		/*
		int[] a = {10,20,30,40,50};
		//a:源数组
		//b:目标数组
		//6:目标数组的长度(元素个数)
		//--若目标数组长度大于源数组长度,则末尾补默认值
		//--若目标数组长度小于源数组长度,则从末尾截掉
		int[] b = Arrays.copyOf(a,6); //灵活性差
		for(int i=0;i<b.length;i++) {
			System.out.println(b[i]);
		}
		*/
		
		/*
		int[] a = {10,20,30,40,50};
		int[] b = new int[6]; //0,0,0,0,0,0
		//a:源数组
		//1:源数组的起始下标
		//b:目标数组
		//0:目标数组的起始下标
		//4:要复制的元素个数
		System.arraycopy(a,1,b,0,4); //灵活性好
		for(int i=0;i<b.length;i++) {
			System.out.println(b[i]);
		}
		*/
	}
}


package day06;
import java.util.Arrays;
//求数组元素的最大值,并将最大值放在数组最后一个元素的下一个位置
public class MaxOfArray {
	public static void main(String[] args) {
		int[] arr = new int[10];
		for(int i=0;i<arr.length;i++) { //遍历所有元素
			arr[i] = (int)(Math.random()*100); //给每个元素都赋值为:0到99之间的随机数
			System.out.println(arr[i]); //输出每个元素的值
		}
		
		int max = arr[0]; //假设第1个元素为最大值
		for(int i=1;i<arr.length;i++) { //遍历剩余元素
			if(arr[i]>max) { //若剩余元素大于max
				max=arr[i];  //则修改max为较大的
			}
		}
		System.out.println("最大值为:"+max);
		
		//数组的扩容
		arr = Arrays.copyOf(arr,arr.length+1);
		//将最大值max放到arr数组的最后一个元素上
		arr[arr.length-1] = max;
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
		
	}
}


package day06;
import java.util.Arrays;
//方法的演示
public class MethodDemo {
	public static void main(String[] args) {
		//say();
		
		/*
		//sayHi(); //编译错误,有参则必须传参
		//sayHi(250); //编译错误,数据类型必须匹配
		sayHi("zhangsan"); //String name="zhangsan"
		sayHi("lisi"); //String name="lisi"
		*/
		
		/*
		sayHello("zhangsan",25);
		sayHello("lisi",27);
		*/
		
		/*
		double a = getNum(); //getNum()的值就是return后的那个数
		System.out.println(a); //8.88----模拟后期对返回值的操作	
		*/
		
		/*
		int b = plus(5,6);  //----实参
		System.out.println(b); //11----模拟后期对返回值的操作	
		
		int m=5,n=6;
		int c = plus(m,n); //传的是m和n里面的那个数----实参
		System.out.println(c); //11----模拟后期对返回值的操作	
		*/
		
		/*
		int[] d = testArray();
		Arrays.sort(d); //模拟后期对返回值的操作	
		for(int i=0;i<d.length;i++) { //模拟后期对返回值的操作	
			System.out.println(d[i]);
		}
		*/
		
		/*
		sayHello("zhangsan",25);
		sayHello("lisi",48);
		*/
	
		a(); //方法的嵌套调用---111,333,222
		
	}  //练习+下课--------5:30
	
	public static void a() {
		System.out.println(111);
		b();
		System.out.println(222);
	}
	public static void b() {
		System.out.println(333);
	}
	

	
	
	
	//无参有返回值
	public static int[] testArray() {
		int[] arr = {25,36,8,2};
		return arr;
	}
	
	//有参有返回值
	public static int plus(int num1,int num2) { //----形参
		int num = num1+num2;
		return num; //返回的是num里面的那个数
		
		//return num1+num2; //返回的是num1与num2的和
	}
	
	//无参有返回值
	public static double getNum() {
		//--若方法有返回值,则在方法中必须出现return,
		//--并且return后的数必须与返回值类型匹配
		
		//return; //编译错误,return后必须跟一个数
		//return "abc"; //编译错误,return后的数必须与返回值匹配
		return 8.88; //1)结束方法的执行  2)返回结果给调用方
	}
	
	
	//无参无返回值
	public static void say() {
		System.out.println("大家好,我叫WKJ,今年37岁了");
	}
	
	//有参无返回值
	public static void sayHi(String name) {
		System.out.println("大家好,我叫"+name+",今年37岁了");
	}
	
	//有参无返回值
	public static void sayHello(String name,int age) {
		if(age>=40) { //在某种特定条件下提前结束方法
			return; //结束方法的执行
		}
		System.out.println("大家好,我叫"+name+",今年"+age+"岁了");
	}
	
}

练习:

package oo.day11;
//练习
public class Day03Test {
	public static void main(String[] args) {
		//2.闰年、平年的判断:
		/*
		int year = 2020; //年份 2019,2000
		if((year%4==0 && year%100!=0) || year%400==0) {
			System.out.println(year+"是闰年");
		}else {
			System.out.println(year+"是平年");
		}
		*/ 
		int year = 2019; //年份
		boolean flag = (year%4==0 && year%100!=0) || year%400==0;
		String str = flag ? year+"是闰年" : year+"是平年";
		System.out.println(str);
		
		
		//1.求两个数中的最大值:
		/*
		int a=8,b=55;
		int max; //最大值
		if(a>b) {
			max = a;
		}else {
			max = b;
		}
		System.out.println("最大值为:"+max);
		*/
		/*
		int a=8,b=55;
		int max = a>b?a:b;
		System.out.println("最大值为:"+max);
		*/
	}
}

package oo.day11;
//练习
public class Day04Test {
	public static void main(String[] args) {
		//根据年份和月份,计算天数:
		int year = 2021; //年份
		int month = 5;   //月份
		int days = 0;    //天数
		switch(month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			days = 31;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			days = 30;
			break;
		case 2:
			if((year%4==0 && year%100!=0) || year%400==0) {
				days = 29;
			}else {
				days = 28;
			}
		}
		System.out.println("天数为:"+days);
		
	
		//1)ScoreLevel成绩等级判断程序
		//2)CommandBySwitch命令解析程序
		//3)Guessing猜数字-------------做do...while版
		
	}
}

package oo.day11;
import java.util.Scanner;
public class Day05Test {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		double[] scores = new double[6]; //分数数组
		for(int i=0;i<scores.length;i++) { //遍历所有分数
			System.out.println("请输入第"+(i+1)+"个学生的成绩:");
			scores[i] = scan.nextDouble();
		}     
		//练习: 1)Addition随机加法运算器  2)MaxOfArray数组元素最大值
		//计算总分和平均分
		double total = 0.0; //总分
		for(int i=0;i<scores.length;i++) {
			total += scores[i];
		}
		double avg = total/scores.length;   //平均分
		System.out.println("总分为:"+total+",平均分为:"+avg);
	
	}
}

package oo.day11;
public class Day06Test {
	public static void main(String[] args) {
//1)定义方法generate  2)用于生成指定长度的int数组
//3)数组中的元素为0到指定范围的随机数 
//4)并将该数组返回 //5)main中调用方法测试
		int[] arr = generate(5,10);
		for(int i=0;i<arr.length;i++) { //模拟对返回值的操作
			System.out.println(arr[i]); //可以输出数据、可以排序、可以复制...
		}
	} 
	public static int[] generate(int len,int max) {
		int[] arr = new int[len];
		for(int i=0;i<arr.length;i++) {
			arr[i] = (int)(Math.random()*max);
		}
		return arr;
	}
	
}

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值