一:循环结构2-While
先判断,再执行。
练习一:猜数字
public class Test5_CassNum {
public static void main(String[] args) {
Random rand=new Random();
Scanner scan=new Scanner(System.in);
int c=rand.nextInt(50);
int d;
while(true) {
d=scan.nextInt();
if(d>c) {
System.out.println("大了");
}else if(d<c){
System.out.println("小了");
}else {
System.out.println("对了");
break;
}
}
}
}
二:循环结构三-do While
先执行,再判断
do{
代码…
}while(执行条件);
三:变量
可以改变的数,称为变量。一般通过三部分来描述一个变量。变量类型,变量名,变量值。其中三部分都是可以改变的,根据需要来确定即可。
变量的使用原则:就近原则。尽量控制到最小范围。。
局部变量:局部变量定义在方法中,方法执行完毕,会随着方法消失。必须手动赋值才能用,否则报错。
成员变量:成员变量定义在类中,类消失才会消失。无需赋值就可以用,会有默认值。
四:拓展
三种循环的区别:
三种循环都是可以相互替代的,但是
for循环一般是知道循环次数的时候用。
while循环一般是不知道循环次数,但知道循环条件的时候用。
do-while循环,一般是无论条件如何,限执行一次的时候用。
五:方法
被命名的代码块,可以含参数,也可以不含参数,方法可以提高代码的复用性。
练习一:方法的调用(无参数,无返回值)
这个方法执行结果是:1 2 4 5 6 3
原因是它的执行顺序,限执行main方法中的两个输出语句,在执行method方法,在method方法中,有三个输出语句,执行之后再执行main方法中的第三个输出语句。
这里的main方法是用static修饰的,被static修饰的方法在运行的时候是会被优先加载的,所以如果method方法如果不加static的话,会因为找不到方法而报错。也就是静态方法只能调用静态方法,普通方法既能调用静态方法,也能调用普通方法。如果不想将method方法写为静态的话,就需要把类Test2_Method进行实例化,然后用类进行调用。
public class Test2_Method {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
//调用方法
method();
System.out.println(3);
}
public static void method() {
// TODO Auto-generated method stub
System.out.println(4);
System.out.println(5);
System.out.println(6);
}
}
练习二:方法的调用(有参数,无返回值)
public class Test3_Method {
public static void main(String[] args) {
//求平方
method(7);
}
/**
* 求平方
* */
private static void method(int i) {
i=i*i;
// TODO Auto-generated method stub
System.out.println(i);
}
}
练习三:方法的调用(有参数,有返回值)
public class Test4_Method {
public static void main(String[] args) {
//求和
int sum=sum(5,10);
int sum1=sum(5,10,15);
String sum2=add3("jack",1,2);
//产生随机数
int rand=rand(100);
System.out.println(sum);
System.out.println(sum1);
System.out.println(sum2);
System.out.println(rand);
}
private static int rand(int i) {
// TODO Auto-generated method stub
Random rand=new Random();
return rand.nextInt(i);
}
private static String add3(String s, int i, int j) {
// TODO Auto-generated method stub
return s+i+j;
}
private static int sum(int i, int j) {
// TODO Auto-generated method stub
return i+j;
}
private static int sum(int i, int j,int k) {
// TODO Auto-generated method stub
return i+j+k;
}
}
方法的重载:是指,在一个类里的现象,存在多个同名的方法,但是参数必须不同,可以个数相同但是类型不同,也可以个数不同。
目的:为了体现程序的灵活性,对外提供多个同名方法,为了方便外界的使用。
练习一:求和
public class Test6_Overlode {
public static void main(String[] args) {
add(1,2);
add(1.0, 2.0);
add("jack",1,2);
add(1,2,"jack");
}
/**
* 数字求和
* 给两个整数求和
* */
public static void add(int a,int b) {
System.out.println(a+b);
}
/**
* 数字求和
* 给两个小数求和
* */
public static void add(double a,double b) {
System.out.println(a+b);
}
/**
* 数字求和
* 带字符串求和1
* */
public static void add(String a,int b,int c) {
System.out.println(a+b+c);
}
/**
* 数字求和
* 带字符串的求和2
* */
public static void add(int a,int b,String c) {
System.out.println(a+b+c);
}
}
结果:
练习二:数据打印
public class Test7_Overload2 {
public static void main(String[] args) {
print(1);
print(1.1);
print(false);
print("jack");
}
/**
* 数据打印
* 打印整数
* */
public static void print(int a) {
System.out.println(a);
}
/**
* 数据打印
* 打印小数
* */
public static void print(double a) {
System.out.println(a);
}
/**
* 数据打印
* 打印布尔
* */
public static void print(Boolean a) {
System.out.println(a);
}
/**
* 数据打印
* 打印字符串
* */
public static void print(String a) {
System.out.println(a);
}
}
结果: