day05韩明琰
一. 方法(函数)
1:函数的概念?函数的格式?格式的解释说明
函数又叫方法,是完成特定功能的代码块
格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,....) {
方法体语句;
return 返回值;
}
修饰符: 目前就用public static 修饰
返回值类型: 就是功能结果的数据类型
方法名: 符合命名规则即可,最好见名识义
参数: 形式参数就是方法定义的,用于接收实际参数的
实际参数就是实际参与运算的
参数类型: 就是参数的数据类型
参数名: 就是变量名
方法体语句:就是完成功能的代码
return: 结束方法的
返回值: 功能的结果,由return带给调用者:返回值是什么类型,返回值类型就是该类型
2:函数的调用
A:明确返回值类型的函数调用
单独调用:没有什么意义,不推荐
输出调用:不够好,因为我们可能对结果做进一步操作
赋值调用:推荐方案
B:void类型的函数调用
单独调用:正确
输出调用:错误
赋值调用:错误
3:函数的练习:
A:求两个数据之和
B:判断两个数据是否相等
C:获取两个数中较大的值
D:打印m行n列的星形矩形
E:打印nn乘法表
package com.zkch.test;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数字:");
int num2 = sc.nextInt();
System.out.println("两个数字的和为:"+add(num1,num2));
System.out.println("两个数字是否相等:"+isEquals(num1,num2));
System.out.println("较大的数字为:"+getMax(num1,num2));
System.out.println("请输入矩形的行数:");
int row = sc.nextInt();
System.out.println("请输入矩形的列数:");
int column = sc.nextInt();
getStar(row,column);
System.out.println("请输入要打印几几乘法表(1到9)");
int num3 = sc.nextInt();
get99(num3);
}
public static int add(int a,int b) {
return a+b;
}
public static boolean isEquals(int a,int b) {
return a==b;
}
public static int getMax(int a,int b) {
return a>b?a:b;
}
public static void getStar(int a,int b){
for(int i = 1;i <= a;i++) {
for(int j = 1;j <= b;j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void get99(int num) {
for(int i = 1;i <= num;i++) {
for(int j = 1;j <= i;j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
4:什么是函数重载?以及函数重载的练习?把讲过的案例练习一次即可
方法重载就是在同一个类中,方法名相同,参数列表不同,与返回值类型无关
===============================================================
===============================================================
二. 内存图
画图操作:
1.一个数组的内存图
2.两个数组的内存图
3.三个引用两个数组的内存图
=======================================
=======================================
⦁ 填空题
⦁ Java中有两种类型的选择结构的控制语句,分别是if语句和 switch语句 。
⦁ 在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。在JDK1.7中又加入了 String 类型。
⦁ for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环过程中只执行一次的部分是 表达式1 。
⦁ 在循环结构中,如果想跳出循环体,结束整个循环结构可以使用 break 语句。
⦁ _______continue______语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而不是终止整个循环的执行。
⦁ 选择题
1. 以下代码的执行结果是( C )。(选择一项)
boolean m = false;
if(m = false){
System.out.println("false");
}else{
System.out.println("true");
}
A. false
B. true
C. 编译错误
D. 无结果
2. 分析如下Java代码,编译运行的输出结果是( A )。(选择一项)
public static void main(String[ ] args) {
boolean a=true;
boolean b=false;
if (!(a&&b)) {
System.out.print("!(a&&b)");
}else if (!(a||b)) {
System.out.println("!(a||b)");
}else {
System.out.println("ab");
}
}
A !(a&&b)
B. !(a||b)
C. ab
D. !(a||b)ab
3. 下列选项中关于变量x的定义,( BD )可使以下switch语句编译通过。(选择二项)
switch(x) {
case 100 :
System.out.println("One hundred");
break;
case 200 :
System.out.println("Two hundred");
break;
case 300 :
System.out.println( "Three hundred");
break;
default :
System.out.println( "default");
}
A double x = 100;
B. char x = 100;
C. String x = "100";
D. int x = 100;
4. 阅读下列文件定入的Java代码,其执行结果是( D )。(选择一项)
public class Test {
public static void main(String[] args) {
char ch = 'c';
switch (ch) {
case 'a':
System.out.print("a"); break;
case 'b':
System.out.print("ab");
case 'c':
System.out.print("c");
default:
System.out.print("d");
}
}
}
A a
B. b
C. c
D. cd
5. 以下Java程序编译运行后的输出结果是( B )。(选择一项)
public class Test {
public static void main(String[] args) {
int i = 0, sum = 0;
while (i <= 10) {
sum += i;
i++;
}
System.out.println(sum);
}
}
A 0
B. 55
C. 50
D. 36
6. 以下四个选项中和下面代码功能相同的是( B )。(选择一项)
int i = 1;
int sum = 0;
while (i <= 100) {
if (i % 2 == 0)
sum = sum + i;
i++;
}
A for (int x =1; x<=100;x++){ sum=sum+x;}
B. for (int x =0; x<=100;x+=2){ sum=sum+x;}
C. for (int x =1; x<=100;x+=2){ sum=sum+x;}
D. 上述全对
7. 以下do-while循环代码的执行结果是( A )。(选择一项)
int a=0;
int c=0;
do{
--c;
a=a-1;
}while(a>0);
System.out.println(a+" "+c);
A. -1 -1
B. 死循环
C. -1 -2
D. -1 0
8. while循环和do-while循环的区别是( D )。(选择一项)
A. 没有区别,这两个结构在任何情况下效果一样
B. while循环比do-while循环执行效率高
C. while循环是先循环后判断,所以循环体至少被执行一次
D. do-while循环是先循环后判断,所以循环体至少被执行一次
9. 在Java中有如下代码,则编译运行该类的输出结果是( D )。(选择一项)
public static void main(String[ ] args) {
for(int i=0;i<10;i++){
if (i%2!=0)
return;
System.out.print(i);
}
}
A 13578
B. 02468
C. 0123456789
D. 0
10. 下面程序执行的结果是在屏幕上打印( B )次Java基础班。(选择一项)
for(int i=1;i<=10;i++){
if (i<5)
continue;
System.out.println("Java基础班");
}
A 5
B. 6
C. 7
D. 8
⦁ 判断题(共20个题目,总计10分)
⦁ if语句的条件表达式的结果都必须是boolean值。( true )
⦁ switch选择语句是多分支选择语句,只能处理等值条件判断的情况,表达式可以是int类型、char类型,但不能是double,float类型。( true )
⦁ while循环结构的特点是先循环再判断,循环体至少执行一次。( false )
⦁ for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中三个表达式都可以省略。(true )
⦁ break语句可以出现在switch语句和循环语句中。( true )
⦁ continue语句可以出现在switch语句和循环语句中。( false )
⦁ 简答题
⦁ if多分支语句和switch语句的异同之处
相同之处:都是选择结构控制语句,可用于分情况操作
不同之处:switch建议判断固定值的时候使用,效率更高。if建议判断区间或范围的时候使用
⦁ while和do-while语句的异同之处
相同之处:都是循环结构控制语句
不同之处:while是先判断,然后决定是否执行。do-while是先执行,后判断循环,最少执行一次循环体
⦁ break和continue语句的作用
break用于结束switch语句和结束循环语句
continue用于跳过循环语句中的某一次循环
⦁ 编码题
⦁ 输入一个数,判断是奇数还是偶数
package com.zkch.test;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt();
if(num%2==0) {
System.out.println("这是一个偶数");
}else {
System.out.println("这是一个奇数");
}
}
}
⦁ 根据成绩输出对应的等级,使用if多分支和switch语句分别实现。
⦁ A级 [90,100]
⦁ B级 [80,90)
⦁ C级 [70,80)
⦁ D级 [60,70)
⦁ E级 [0,60)
package com.zkch.test;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = sc.nextInt();
if(score >= 90 && score <= 100) {
System.out.println("A级");
}else if(score >= 80 && score <= 89) {
System.out.println("B级");
}else if(score >= 70 && score <= 79) {
System.out.println("C级");
}else if(score >= 60 && score <= 69) {
System.out.println("D级");
}else if(score >= 0 && score <= 59) {
System.out.println("E级");
}else {
System.out.println("输入有误");
}
}
}
⦁ 根据月份,输出对应的季节,并输出至少两个描述该季节的成语和活动。
package com.zkch.test;
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int month = sc.nextInt();
switch(month) {
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;
case 12:
case 1:
case 2:
System.out.println("冬天到了,千里冰封,白雪皑皑,我们可以烤暖气,去冬泳");
break;
default:
System.out.println("输入有误");
break;
}
}
}
⦁ 从键盘输入一个班5个学生的分数,求和并输出。
package com.zkch.test;
import java.util.Scanner;
public class Demo6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一位同学的成绩:");
int score1 = sc.nextInt();
System.out.println("请输入第二位同学的成绩:");
int score2 = sc.nextInt();
System.out.println("请输入第三位同学的成绩:");
int score3 = sc.nextInt();
System.out.println("请输入第四位同学的成绩:");
int score4 = sc.nextInt();
System.out.println("请输入第五位同学的成绩:");
int score5 = sc.nextInt();
int sum = getSum(score1,score2,score3,score4,score5);
System.out.println("成绩和为:"+sum);
}
public static int getSum(int a,int b,int c,int d,int e) {
return a+b+c+d+e;
}
}
⦁ 可选题
⦁ 根据考试成绩输出对应的礼物,90分以上爸爸给买电脑,80分以上爸爸给买手机, 60分以上爸爸请吃一顿大餐,60分以下爸爸给买学习资料。
要求:该题使用多重if完成
package com.zkch.test;
import java.util.Scanner;
public class Demo7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = sc.nextInt();
if(score > 90 && score <= 100) {
System.out.println("爸爸给买电脑");
}else if(score > 80 && score <=90) {
System.out.println("爸爸给买手机");
}else if(score > 60 && score <=80) {
System.out.println("爸爸请吃一顿大餐");
}else if(score >=0 && score <= 60) {
System.out.println("爸爸给买学习资料");
}else {
System.out.println("输入有误");
}
}
}
⦁
给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。
package com.zkch.test;
public class Demo8 {
public static void main(String[] args) {
int money = 20;
int count = 0;
while(money>=3) {
money = money - 3;
money++;
count++;
}
System.out.println("最多可买"+count+"瓶可乐");
}
}