3.31-4.1+java开发作业

时间:2020-11-26 21:18:32

1:switch语句的格式?针对格式的解释?以及注意事项?

/**
 * //作业1:switch语句的格式?针对格式的解释?以及注意事项?
 * switch语句的格式:
 * switch(表达式){
 * 		case 值1:
 * 			语句1;
 * 				break;
 *  	case 值2:
 * 			语句2;
 * 				break;
 *    	case 值3:
 * 			语句3;
 * 				break;
 * 		...
 * 		default:
 * 			语句n+1;
 * 			break;
 * }
 * 格式解释:
 * 		case语句中的值1和表达式的值比较,如果一致,执行语句1
 * 		如果不一致,case语句中的值2和表达式的值比较,如果一致,执行语句2
 * 		......
 * 		如果都不一致,执行default中的语句
 * 		switch:当前是一个选择结构语句,它的作用和if语句是一样
 * 		case语句:它后面的值是和表达式进行比较
 * 		break:表示结束当前switch语句
 * 		default:是和if语句中的else意识时候一样的,如果条件都不成立,执行default中的语句
 * 注意事项:
 * 		switch语句后面的表达式:能跟的类型:byte,short,int,char
 * 		jdk5以后,可以跟枚举
 * 		jdk7以后,可以String类型
 *		1)case语句的后面只能跟常量(根据具体的需求),不能跟变量!    javascript中的case后面是可以跟变量并且还可以表达式
 * 		2)default语句可以在switch语句中的任何位置,不影响代码执行,如果是在语句中,那么break最好带上
 * 		3)建议把break带上,否则会造成一个现象:case穿透!
 * 		4)switch语句的结束条件:
 * 				1)语句break语句结束
 * 				2)执行默认执行到末尾语句结束
 * 		5)case语句的后面是冒号,表示和switch语句中的表达式进行比较
 * @author Shinelon
 *
 */

2:看程序,分析下面程序的结果:

/**
 * 2:看程序,分析下面程序的结果:
int x = 2,y=3;

switch(x)
{
	default:
		y++;
	case 3:
		y++;
		break;
	case 4:
		y++;
}

System.out.println("y="+y);
结果:y=5
分析:switch语句中的x与case的值3比较不一致,switch语句中的x继续与case的值4比较不一致,执行default语句:y++此时y=4,
	因为没有break语句所以继续执行,执行到第一个case时y=5,此时后边有break语句,所以switch语句结束.

3:根据输入的值,判断是星期几。(分别用if语句和switch语句实现)
 输入:1 
  输出:星期1

package zuoye;
/**
 * 3:根据输入的值,判断是星期几。(分别用if语句和switch语句实现)
	输入:1	 
		输出:星期1
 */

import java.util.Scanner;

public class HomeWork03 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请您输入一个数据");
		int a = sc.nextInt();
		switch(a) {
		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;
			default:
				System.out.println("您输入的数据有误");
		}
		System.out.println("-----------------------------------------------");
		System.out.println("请您输入一个数据");
		int b = sc.nextInt();
		if(b==1) {
			System.out.println("星期一");
		}else if(b==2){
			System.out.println("星期二");
		}else if(b==3){
			System.out.println("星期三");
		}else if(b==4){
			System.out.println("星期四");
		}else if(b==5){
			System.out.println("星期五");
		}else if(b==6){
			System.out.println("星期六");
		}else if(b==7){
			System.out.println("星期日");
		}else {
			System.out.println("您输入的数据有误");
		}
	}

}


4:for循环的格式?要能看懂执行流程。
  用for循环完成如下案例
 
  求和
  求偶数和
  求奇数和
  打印水仙花数
  统计水仙花数

package zuoye;
/**
 * 
 * 4:for循环的格式?要能看懂执行流程。
  用for循环完成如下案例
  
  求和
  求偶数和
  求奇数和
  打印水仙花数
  统计水仙花数
 * @author Shinelon
 *
 */
public class HomeWork04 {
	/**
	 * for循环的格式:
	 * 		for(初始化语句;条件语句;步长语句){
	 * 				循环语句体;
	 * 		}
	 * 执行流程:
	 * 		初始化语句:给当前变量进行赋值,如果满足条件语句,那么执行循环体语句
	 * 		执行步长语句,对变量进行自增或自减---->在对条件语句进行判断,如果满足条件,再次执行循环体---->步长语句
	 * 		直到不满足条件为止,循环语句结束...
	 */
	public static void main(String[] args) {
		//求和1`100
		int sum = 0;
		for(int a = 1;a <= 100;a++) {
			sum+= a;
		}
		System.out.println("1`100的和为:"+sum);
		System.out.println("---------------------------------------------");
		//求1`100的偶数和
		int sum1 = 0;
		for(int b = 1;b <= 100 ;b++) {
			if(b%2==0) {
				sum1 += b;
			}
		}
		System.out.println("1`100的偶数和为:"+sum1);
		System.out.println("---------------------------------------------");
		//求1`100的奇数和
		int sum2 = 0;
		for(int c = 1;c <= 100 ;c++) {
			if(c%2==1) {
				sum2 += c;
			}
		}
		System.out.println("1`100的偶数和为:"+sum2);
		System.out.println("---------------------------------------------");
		//打印水仙花数
		for(int d = 100;d < 1000;d++) {
			int ge = d%10;
			int shi = d/10%10;
			int bai = d/10/10%10;
			if(d==ge*ge*ge+shi*shi*shi+bai*bai*bai) {
				System.out.println("水仙花数为:"+d);
			}
		}
		System.out.println("---------------------------------------------");
		//统计水仙花数
		int sum3 = 0;
		for(int d = 100;d < 1000;d++) {
			int ge = d%10;
			int shi = d/10%10;
			int bai = d/10/10%10;
			if(d==ge*ge*ge+shi*shi*shi+bai*bai*bai) {
				sum3++;
			}
		}
		System.out.println("水仙花数个数为:"+sum3);
		System.out.println("---------------------------------------------");
		//九九乘法表
		for(int e = 1;e <=9;e++) {
			for(int f = 1 ; f <=e ; f++) {
				System.out.print(e+"*"+f+"="+(e*f)+"\t");
			}
			System.out.println();
		}
	}
}

5:break,continue和return分别有什么用?

//5:break,continue和return分别有什么用?
/**
 * break:表示中断,结束的意思,结束语句,不能单独使用,一般在switch语句,或者循环语句中使用
 * continue:继续的意思,跳出当前循环,直接进入下一次循环,不能单独使用,在循环语句中使用多
 * retrun  :方法的返回值 ,会带回一个结果
 * 
 * @author Shinelon
 *
 */


6:函数的概念?函数的格式?格式的解释说明

/**
 * 方法:完成特定功能的代码块
 * 方法的格式:
 * 		public static  返回值 方法名(参数类型1 变量1,参数类型2 变量名){
 * 			return ...
 * 		}
 * 方法格式的解释:
 * 		public static:方法是静态的,并且是公共的方法  (今天写方法,public static)
 * 		返回值(数据类型): 根据具体的需求,返回什么类型,用什么样的数据类型结束
 * 		方法名:给当前代码块起名字,命名规则:单个单词:字母全小写 多个单词:第一个单词全部小写,第二个单词开始每个单词首字母大写
 * 		return: 将当前代码的计算的结果,返回给调用者
 * @author Shinelon
 *
 */

7:函数的练习:
 A:求两个数据之和
 B:判断两个数据是否相等
 C:获取两个数中较大的值
 D:打印m行n列的星形矩形
 E:打印nn乘法表

package zuoye;

import java.util.Scanner;

/**
 * 7:函数的练习:
	A:求两个数据之和
	B:判断两个数据是否相等
	C:获取两个数中较大的值
	D:打印m行n列的星形矩形
	E:打印nn乘法表
 * @author Shinelon
 *
 */
public class HomeWork07 {
	public static void main(String[] args) {
		//D:打印m行n列的星形矩形
		Scanner sc = new Scanner(System.in) ;
		System.out.println("----------------------------");
		System.out.println("请输入第一个数据:");
		int a = sc.nextInt() ;
		System.out.println("请输入第二个数据:");
		int b = sc.nextInt() ;
		//A求两个数据之和
		int result = sum(a,b);
		System.out.println("求和结果为:"+result);
		//B:判断两个数据是否相等
		System.out.println("----------------------------");
		boolean flag = compare(a,b);
		System.out.println("flag:"+flag);
		//C:获取两个数中较大的值
		System.out.println("----------------------------");
		int max =max(a,b);
		System.out.println("两个数据中较大的值为:"+max);
		System.out.println("----------------------------");
		//D:打印m行n列的星形矩形
		System.out.println("请输入一个行数:");
		int m = sc.nextInt() ;
		System.out.println("请输入一个列数:");
		int n = sc.nextInt() ;
		print(m,n) ;
		System.out.println("----------------------------");
		//E:打印nn乘法表
		System.out.println("请输入一个数据(1<=n<=9):");
		int n1 = sc.nextInt() ;
		nN(n1);
	}
	//A求两个数据之和方法
	public static int sum(int a,int b) {
		return a+b;
	}
	//B:判断两个数据是否相等方法
	public static boolean compare(int a,int b){
		if(a==b) {
			return true;
		}else {
			return false;
		}
	}
	//C:获取两个数中较大的值方法
	public static int max(int a,int b) {
		return a>b? a:b;
	}
	//D:打印m行n列的星形矩形方法
	public static void print(int a,int b) {
		for(int m = 0 ; m < a ; m ++) {
			for(int n = 0 ; n < b ; n++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	//E:打印nn乘法表方法
	public static void nN(int n) {
		for(int x = 1 ; x <= n ; x ++) {
			for(int y = 1 ;y <=x ; y ++) {
				System.out.print(y+"*"+x+"="+(y*x)+"\t");
			}
			System.out.println();
		}
	}
}

8:short s = 1; s = s + 1;有没有问题?如果有怎么解决?
   short s = 1; s += 1;有没有问题?如果有怎么解决?

 
/**
 * short s = 1; s = s + 1;有没有问题?如果有怎么解决?
 * 答:有问题,在"s = s + 1;"中默认类型提升为int,不能用short接收int类型的数据
 *   解决方案:强制类型转换:将"s = s + 1;"转换为"s = (short)(s + 1);"
   short s = 1; s += 1;有没有问题?如果有怎么解决?
    答:没问题
 * @author Shinelon
 *
 */

9:第一题
int x = 1,y = 1;

if(x++==2 & ++y==2)  {
	x =7;
}
System.out.println("x="+x+",y="+y);  
第二题
int x = 1,y = 1;

if(x++==2 && ++y==2)
{
	x =7;
}
System.out.println("x="+x+",y="+y);
第三题
int x = 1,y = 1;

if(x++==1 | ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);
第四题
int x = 1,y = 1;

if(x++==1 || ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);

答案

package zuoye;
/**
 * 第一题
 * 		int x = 1,y = 1;

		if(x++==2 & ++y==2)  {
			x =7;
		}
		System.out.println("x="+x+",y="+y); 
		结果:x=2,y=2
		分析:if语句中表达式x++==2不成立,所以if语句不执行,此时x=2,y=2直接输出
 *第二题
 *		int x = 1,y = 1;

		if(x++==2 && ++y==2)
		{
			x =7;
		}
		System.out.println("x="+x+",y="+y);
		结果:x=2,y=1
		分析:if语句中表达式x++==2不成立,又因为运算符为&&导致右边不执行,同时if语句也不执行,此时x=2,y=1直接输出
 *第三题
 *		int x = 1,y = 1;

		if(x++==1 | ++y==1)
		{
			x =7;
		}
		System.out.println("x="+x+",y="+y);
		结果:x=7,y=2
		分析:if语句中表达式x++==1成立,执行if语句,此时x=7,y=2
 *第四题
		int x = 1,y = 1;

		if(x++==1 || ++y==1)
		{
			x =7;
		}
		System.out.println("x="+x+",y="+y);
		结果:x=7,y=1
		分析:if语句中表达式x++==1成立,又因为运算符为||导致右边不执行,执行if语句,此时x=7,y=1

 * @author Shinelon
 *
 */

10:编写代码实现如下内容:if语句实现
考试成绩分等级。
 90~100 A等。
 80-89 B等。
 70-79 C等。
 60-69 D等。
 60以下 E等。
请根据给定成绩,输出对应的等级。

package zuoye;

import java.util.Scanner;

/**
 * 10:编写代码实现如下内容:if语句实现
	考试成绩分等级。
	90~100	A等。
	80-89	B等。
	70-79	C等。
	60-69	D等。
	60以下	E等。
 * @author Shinelon
 *
 */
public class HomeWork10 {
	public static void main(String[] args) {
		while(true) {
			Scanner sc = new Scanner(System.in) ;
			System.out.println("请输入学生成绩:");
			int a = sc.nextInt() ;
			if(a >= 90 && a <=100) {
				System.out.println("考试成绩为A等");
			}else if(a>=80 && a<90) {
				System.out.println("考试成绩为B等");
			}else if(a>=70 && a<79) {
				System.out.println("考试成绩为C等");
			}else if(a>=60 && a<69) {
				System.out.println("考试成绩为D等");
			}else if(a>=0 && a<60) {
				System.out.println("考试成绩为E等");
			}else {
				System.out.println("您输入的成绩有误");
			}
		}
		
		
	}

}
11:编程题 需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
       每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
    请问,经过多少天,小芳才可以存到100元钱。
package zuoye;
/**
 * 11:编程题 需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
	      每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
		  请问,经过多少天,小芳才可以存到100元钱。

 * @author Shinelon
 *
 */

public class HomeWork11 {
	public static void main(String[] args) {
		int day = 0;
		int money = 0 ;
		int end = 1000 ;
		while(money<end) {
			day++;
			if(day%5==0) {
				money -= 60;
			}
			money += 25;
			
		}
		System.out.println("经过"+day+"天存到100元");
	}

}