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
输出:星期1package 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元"); } }