Java_练习代码(上)

class Array2Sum {
	public static void main(String[] args) {
		int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
		int sum = 0;
		for (int i=0; i<arr.length; i++) {
			for (int j=0; j<arr[i].length; j++) {
				sum +=arr[i][j];
			}
		}
		System.out.println("总数为:" +sum);
	}
}
/*
	需求:数组的联系

	分析:
*/
import java.util.Scanner;

class MyArrayDemo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.println("请输入三个数据:");
		int[] arr;
		int i = 0;
		arr = new int[3];
		System.out.println(arr);

		while(true) {
			arr[i] = sc.nextInt();
			i++;
			if (i >= arr.length) {
				break;
			}
		}

		/*
		for (i = 0; i<arr.length; i++) {
			arr[i] = sc.nextInt();
			//System.out.println(arr[i]);
		}
		*/

		for (int j=0; j<arr.length; j++) {
		System.out.println("arr[" +j +"]=" +arr[j]);
		}

		int temp = 0;
		for (int j=1; j<arr.length; j++) {
			temp = arr[j-1]>=arr[j]?arr[j-1]:arr[j];
		}
		System.out.println("arr数组中最大值为:" +temp);
	}
}

/*
	需求:一维数组的练习

	分析:
*/
import java.util.Scanner;

class  MyArrayTest {
	public static void main(String[] args) {
		int arr = {1,2,3,4,5,6,7,8};
		String strArray = {"","星期一","星期二","星期三","星期四","星期五","星期六","星期日"};

		//查表法
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入查表法数字(1-7):");
		int index = sc.nextInt();
		System.out.println("你要查找的星期为:" +strArray[index]);
	}

	//遍历
	public static void printArray(int[] arr) {
		System.out.print("[");
		for (int i=0; i<arr.length; i++) {
			if (i <= arr.length-1) {
				System.out.print(arr[i] +", ");
			}
			System.out.print(arr[i]);
		}
		System.out.println("]");
	}

	//最值
	public static int getMax(int[] arr) {
		int max = arr[0];
		for (int i=0; i<arr.length; i++) {
			if (arr[i] > max) {
				max = arr[i];
			}
		}
		return max;
	}

	//反转
	public static void reverse(int[] arr) {
		for (int start=0,end=arr.length; start<=end; start++,end--) {
			int temp = arr[start];
			arr[start] = arr[end];
			arr[end] = temp;
		}
	}

	//元素第一次出现的索引
	public static int indexOfArray(int[] arr, int key) {
		int index = -1;
		for (int i=0; i<arr.length; i++) {
			if (key == arr[i]) {
				index = i;
				break;
			}
		}
		return index;
	}

	//排序
	//public static void OrderOfArray(int[] arr) {

	//}

}

/*
	逻辑运算符:
		&,|,!,^
		&&,||

	注意:
		逻辑运算符连接的应该是一个布尔表达式。
*/
class OperatorDemo {
	public static void main(String[] args) {
		//&,|,!,^
		int a = 10;
		int b = 20;
		int c = 30;

		//&:逻辑与	有false则false
		System.out.println(a>b & a>c); //false & false = false
		System.out.println(a>b & a<c); //false & true = false
		System.out.println(a<b & a>c); //true & false = false
		System.out.println(a<b & a<c); //true & true = true
		System.out.println("--------");

		//|:逻辑或	有true则true
		System.out.println(a>b | a>c); //false | false = false
		System.out.println(a>b | a<c); //false | true = true
		System.out.println(a<b | a>c); //true | false = true
		System.out.println(a<b | a<c); //true | true = true
		System.out.println("--------");

		//^:逻辑异或 相同false,不同true。
		//情侣:男男,男女,女男,女女
		System.out.println(a>b ^ a>c); //false ^ false = false
		System.out.println(a>b ^ a<c); //false ^ true = true
		System.out.println(a<b ^ a>c); //true ^ false = true
		System.out.println(a<b ^ a<c); //true ^ true = false
		System.out.println("--------");

		//!:逻辑非
		System.out.println((a>b));//false
		System.out.println(!(a>b));//true
		System.out.println(!!(a>b));//false
		System.out.println(!!!(a>b));//true
		System.out.println(!!!!(a>b));//false
	}
}

/*
	三元运算符:
	格式
		(关系表达式)?表达式1:表达式2;

	执行流程:
		计算关系表达式,看其返回值
			true:表达式1就是整个表达式的值
			false:表达式2就是整个表达式的值

*/
class OperatorDemo {
	public static void main(String[] args) {
		//获取两个数据中的较大值
		int x = 3;
		int y = 4;
		int z = (x > y)? x : y;
		System.out.println(z);

		//比较两个数是否相等
		int a = 4;
		int b = 4;
		//boolean flag = (a==b)?true:false;
		boolean flag = (a == b);
		System.out.println(flag);

		//获取三个数据中的较大值
		int c = 30;
		int d = 40;
		int e = 50;
		//int max = (c>d)?(c>e?c:e):(d>e?d:e);
		int temp = (c>d)?c:d;
		int max = (temp>e)?temp:e;
		System.out.println(max);
	}
}

/*
	为了程序的数据更加的灵活,我们决定加入键盘录入数据。

	如何使用键盘录入数据呢?目前你就给我记住了。
	A:导包
		import java.util.Scanner;

		在class的上面
	B:创建对象
		Scanner sc = new Scanner(System.in);
	C:获取数据
		int i = sc.nextInt();
*/
import java.util.Scanner;

class OperatorDemo {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		System.out.println("请输入一个整数:");
		//获取数据
		int i = sc.nextInt();

		System.out.println("i:"+i);
	}
}
/*
	键盘录入两个数据,获取这两个数据中的最大值

	分析:
		A:键盘录入数据
		B:判断,用if语句实现
		C:输出结果

	练习:
		键盘录入两个数据,比较这两个数据是否相等
		用if语句实现。
*/
import java.util.Scanner;

class IfTest {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		//键盘录入数据
		System.out.println("请输入第一个数据:");
		int firstNumber = sc.nextInt();
		System.out.println("请输入第二个数据:");
		int secondNumber = sc.nextInt();

		//用if语句实现

		//方式1:直接把结果输出
		if(firstNumber > secondNumber) {
			System.out.println("较大的值是:"+firstNumber);
		}else {
			System.out.println("较大的值是:"+secondNumber);
		}
		System.out.println("-----------------------------");

		//方式2:把结果保存下来
		/*
		变量的生命周期问题,作用域问题
		if(firstNumber > secondNumber) {
			int max = firstNumber;
		}else {
			int max = secondNumber;
		}
		*/

		int max;
		if(firstNumber > secondNumber) {
			max = firstNumber;
		}else {
			max = secondNumber;
		}
		System.out.println("较大的值是:"+max);
	}
}

/*
	用switch语句实现键盘录入月份,输出对应的季节

	在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
		if语句使用场景:
			针对结果是boolean类型的判断
			针对一个范围的判断
			针对几个常量值的判断
		switch语句使用场景:
			针对几个常量值的判断
*/
import java.util.Scanner;

class SwitchTest3 {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		//键盘录入数据
		System.out.println("请输入月份:");
		int month = sc.nextInt();

		/*
		switch(month) {
			case 1:
				System.out.println("冬季");
				break;
			case 2:
				System.out.println("冬季");
				break;
			case 3:
				System.out.println("春季");
				break;
			case 4:
				System.out.println("春季");
				break;
			case 5:
				System.out.println("春季");
				break;
			case 6:
				System.out.println("夏季");
				break;
			case 7:
				System.out.println("夏季");
				break;
			case 8:
				System.out.println("夏季");
				break;
			case 9:
				System.out.println("秋季");
				break;
			case 10:
				System.out.println("秋季");
				break;
			case 11:
				System.out.println("秋季");
				break;
			case 12:
				System.out.println("冬季");
				break;
			default:
				System.out.println("你输入的月份有误");
		}
		*/

		//比较麻烦
		switch(month) {
			case 1:
			case 2:
			case 12:
				System.out.println("冬季");
				break;
			case 3:
			case 4:
			case 5:
				System.out.println("春季");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println("夏季");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋季");
				break;
			default:
				System.out.println("你输入的月份有误");
		}
	}
}

class ForTest {
	public static void main(String[] args) {
		//请在控制台输出数据1-10
		System.out.println(1);
		System.out.println(2);
		System.out.println(3);
		System.out.println(4);
		System.out.println(5);
		System.out.println(6);
		System.out.println(7);
		System.out.println(8);
		System.out.println(9);
		System.out.println(10);
		System.out.println("------------");

		for(int x=0; x<10; x++) {
			System.out.println(x+1);	
		}
		System.out.println("------------");

		for(int x=1; x<=10; x++) {
			System.out.println(x);	
		}
		System.out.println("------------");

		for(int x=10; x>0; x--) {
			System.out.println(x);	
		}
		System.out.println("------------");
	}
}

/*
	需求:请统计1-1000之间同时满足如下条件的数据有多少个:
			对3整除余2
			对5整除余3
			对7整除余2

	分析:
		A:定义一个统计变量。
		B:1-1000之间告诉我们了范围,用for循环可以解决
		C:条件
			对3整除余2
			对5整除余3
			对7整除余2

			x%3 == 2
			x%5 == 3
			x%7 == 2
*/
class ForTest6 {
	public static void main(String[] args) {
		//定义一个统计变量。
		int count = 0;

		//1-1000之间告诉我们了范围,用for循环可以解决
		for(int x=1; x<=1000; x++) {
			//判断条件
			if(x%3==2 && x%5==3 && x%7==2) {
				//System.out.println(x);
				count++;
			}
		}

		System.out.println("共有"+count+"个满足条件的数据");
	}
}

/*
	我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
	请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

	分析:
		A:初始化条件
			我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
		B:统计变量
			我折叠多少次
		C:判断条件
			纸张厚度<=8848
		D:变化的数据
			纸张厚度每折叠一次是以前的2倍
*/
class WhileTest {
	public static void main(String[] args) {
		//初始条件
		int end = 884800;
		int start = 1;

		//定义统计变量
		int count = 0;

		//while循环
		while(start<=end) {
			count++;

			//纸张厚度每折叠一次是以前的2倍
			start*=2;
		}

		System.out.println("需要折叠:"+count+"次");

		//这道题目用for循环改
		/*
		int count = 0;
		for(int start = 1,end = 884800; start<=end;start*=2){
			count++;
		}
		System.out.println("需要折叠:"+count+"次");
		*/
	}
}

/*
	需求:键盘录入两个数据,返回两个数中的较大值

	分析:
		A:键盘录入数据,用Scanner实现。
		B:写一个功能实现,返回两个数据的较大值
		C:调用功能
		D:输出结果
*/
import java.util.Scanner;

class MethodTest {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		//获取键盘录入数据
		System.out.println("请输入第一个数据:");
		int a = sc.nextInt();
		System.out.println("请输入第二个数据:");
		int b = sc.nextInt();

		//调用方法
		int max = getMax(a,b);
		System.out.println("大的值是:"+max);
	}

	/*
		返回两个数中的较大值
		两个明确:
			返回值:int
			参数列表:int a,int b
	*/
	public static int getMax(int a,int b) {
		/*
		if(a > b) {
			return a;
		}else {
			return b;
		}
		*/

		/*
		int m = a>b?a:b;
		return m;
		*/

		return a>b?a:b;
	}
}

/*
	键盘录入一个数据n(1<=n<=9),输出对应的nn乘法表
*/
import java.util.Scanner;

class MethodTest4 {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		//键盘录入数据
		System.out.println("请输入一个整数:(1~9)");
		int n = sc.nextInt();

		//调用功能,输出nn乘法表
		printNN(n);
	}

	/*
		输出对应的nn乘法表
		
		返回值类型:
			void
		参数列表:
			int n
	*/
	public static void printNN(int n){
		for(int x=1; x<=n; x++) {
			for(int y=1; y<=x; y++) {
				System.out.print(y+"*"+x+"="+x*y+"\t");
			}
			System.out.println();
		}	
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值