第四天
复习:
-
switch(表达式){ case 常量; … break; … default: … }
表达式结果类型:String int char byte short 枚举
-
循环语句
代表:while for do-while
组成:初始化变量 更改初始化变量语句 循环条件(boolean) 循环体语句无限循环:while(永远为true) for( 随意写 ;true(可省略不写);随意写 )
Ctrl + c 强制程序停止public class Demo1{ public static void main(String[] args){ System.out.println("Hello World!"); } } import java.util.*; public class Demo2{ public static void main(String[] args){ //练习:猜数字游戏,一直猜,直至猜中游戏结束。 //猜 :键盘录入 ,猜的过程中可以进行提示,猜大了,还是猜小了,还是猜中了(游戏结束) //被猜数:随机数 //创建扫描器 Scanner sc = new Scanner(System.in); //产生随机数 1-50 int ran = (int)(Math.random()*50+1); //boolean flag = true; while(true){ System.out.println("请输入您猜测的数字:"); int num = sc.nextInt(); if(num == ran){ System.out.println("猜中了,游戏结束"); //flag = false; // break; return; }else if(num > ran){ System.out.println("猜大了,请继续猜数字"); }else{ System.out.println("猜小了,请继续猜数字"); } } } }
Math.random()0-1之间的随机数double类型,左闭右开
关键字前加标号–名称: 就是将变量定名称,叫做标号名
目标
- 循环嵌套
- 跳转语句
- 方法
- 数组
1.循环嵌套
一个循环中包含另一个循环语句
for(){
for(){
…
}
}
外循环代表行数,内循环代表列数
public class Demo3{
public static void main(String[] args){
for(int i = 0; i < 5; i++){ //外循环---时针
for(int j = 0 ;j < 10; j++){ //内循环---分针
System.out.print("*");
}
System.out.println(); //换行
}
//总结:外循环:行数 内循环:每行的列
for(int i = 1; i < 6; i++){
for(int j = 1; j <= i; j++){
System.out.print("*");
}
System.out.println();
}
for(int i = 1; i < 6; i++){
for(int j = i; j < 6; j++){
System.out.print("*");
}
System.out.println();
}
System.out.println("Hello World!");
}
}
2.跳转语句
这两个语句必须使用在对应的环境中,此外的环境不允许出现
break:使用在switch或循环语句中,作用就是跳出当前语句。
也可以break + 标号名
public class Demo4{
public static void main(String[] args){
// for(int i = 0; i < 5 ; i++){
// System.out.println("i = " + i);
// break;
// }
// for(int i = 0; i < 5 ; i++){
// if(i == 3)
// break;
// System.out.println("i = " + i);
// }
w: for(int i = 0; i < 5 ; i++){
n: for(int j = 0; j < 5; j++){
System.out.println("i = " + i);
break w;
}
}
System.out.println("over");
}
}
continue:只能使用在循环语句中,跳出本次正在进行中的循环,继续下一次循环
通常结合if一起使用,同样可以continue + 标号名
public class Demo5{
public static void main(String[] args){
for(int i = 0; i < 5 ; i++){
if(i ==2)
continue;
System.out.println("i = " + i);
}
w: for(int i = 0; i < 5 ; i++){
n: for(int j = 0; j < 5; j++){
// if(j == 2)
// continue;
System.out.println("j = " + j);
continue w;//内循环每次只执行0的一次就结束跳出了外循环
} //相当于外循环进行了5次,每次只内循环一次0
}
continue;
System.out.println("Hello World!");
}
}
public class Demo6{
public static void main(String[] args){
//打印2-50间的素数(质数)
//只能被1和它本身整除,没有其他的公约数。
for(int i = 2; i < 51; i++){ //被除数
boolean flag = true; //默认2-50间的每个数都是质数
for(int j = 2; j <= i/2; j++){ //除数
if(i % j == 0){
flag = false;
break;
}
}
if(flag)
System.out.println("i = " + i);
}
System.out.println("Hello World!");
}
}
3.方法 method
概念:定义在类中,完成一个特定功能的计算。
格式:
修饰符 返回值类型 方法名(参数列表(形参)){
功能语句;…
return 返回值;
}
说明:
1.修饰符:public static / static
2.返回值类型:
a.数据类型
方法是功能,功能计算后,可能会有一个数值产生,返回值类型就是该数据对应的数据类型
b.void 方法功能没有具体数值产生,使用关键字void 占位
return 可省略
3.方法名:标识符(记住要求)
xxx xxxYyyZzz
4.参数列表:变量的声明列表,中间用逗号分隔,列表的个数大于等于0,小括号一直保留
(数据类型 变量名1,数据类型 变量名2, …)
编写功能代码时,是否需要外界资源数据参与计算,如果需要就写参数列表,
否则不写,但小括号保留
5.return 返回值:返回值就是功能计算后的那个结果数据
return :
1.将功能计算后的结果数据返回给方法的调用者
2.方法结束 return可让整个方法结束
好处:提高了代码的复用性
注意:
1.方法不调用不执行,调用时使用的参数叫实参,实参赋值给形参
2.没有形参,实参也不写。实参顺序和类型取决于形参顺序和类型
方法调用:
- 有具体返回值类型:
返回值类型变量 = 方法名(实参列表)
System.out.println(方法名(实参列表)) - void 返回值类型:方法名(实参列表)
import java.util.*;
public class Demo7{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个半径:");
int r = sc.nextInt();
//调用方法
double mj = getArea(r);
System.out.println("面积是:"+mj);
// System.out.println("面积是:"+getArea(r));
r = sc.nextInt();
//调用方法
mj = getArea(r);
System.out.println("面积是:"+mj);
}
//思考:1.返回值类型 2.参数列表
//计算圆形的面积
public static double getArea(int r){ //r = r(上)
//System.out.println(r + "------");
double area = 3.14*r*r;
return area;
}
}
public class Demo8{
public static void main(String[] args){
//调用方法
int sum = getSum(10,5); //实际参数--实参
System.out.println("sum = " + sum);
int len = getLength(8,6);
System.out.println("length = " + len);
int s = getS();
System.out.println("s = " + s);
System.out.println(test(5,1.23f));
boolean flag = compare(5,5);
System.out.println(flag);
System.out.println(equals(5,6));
}
//用方法实现:计算两个整数的和 (返回值类型 参数列表)
public static int getSum(int x, int y){ //x = 10, y = 5 形式参数--形参
int sum = x + y;
return sum;
}
//用方法实现: 计算长方形的周长。(返回值类型 参数列表)
public static int getLength(int a,int b){
return 2*(a+b);
}
public static int getS(){
return 5+5;
}
public static float test(int a, float f){
return a+f;
}
//定义方法,比较输入的两个整数是否相等。
public static boolean compare(int a, int b){
// if(a == b)
// return true;
// return false;
// return a == b ? true :false;
return a==b;
//上面三个写法
}
public static String equals(int a, int b){
return a == b? "相等" : "不相等";
}
}
public class Demo9{
public static void main(String[] args){
//调用方法
printSJ(5);
test(5);
System.out.println("Hello World!");
}
//封装方法,打印一个直角三角形(行数有用户指定)
public static void printSJ(int a){
for(int i = 1; i <= a; i++){
for(int j = 1; j <= i; j++){
System.out.print("*");
}
System.out.println(); //换行
}
//return ; 可省略
}
//void 无具体数值返回,用来占位
public static void test(int x){
if(x == 5)
return;
System.out.println("x = " + x);
}
}



