do while循环
语法:
do{
//循环体
}while(条件表达式);
注:它是先执行循环体,后再判断的循环结构。
如:
int i = 0;
do{
System.out.println("i = "+i);
i++;
}while(i < 10);
---
do while一般用在“交互式”的界面循环中。
案例:
--------------------------
break语句与continue语句
break可以用在:
1). switch语句中, 表示退出某个case块
2). 循环中, 表示 打破最接近于自己所在的那一层循环。
continue语句用在:
1). 循环中, 表示结束本轮循环[最接近于自己所在的那一层循环],开始下一轮
如:
for(int i=1;i<=9;i++){
if(i % 3 == 0){
//break; //i=1,i=2
continue; //i=1,2,4,5,7,8
}
System.out.println("i = "+i);
}
------------
课堂作业:
1. 设计一个程序,提示用户输入一个整数,并计算出这个整数的阶乘。
2. 设计一个程序,输出200以内所有的素数[质数]
3. 设计一个程序,打印出1000以内所有的完备数[完美数]
完备数是指某个数刚好等于它的所有约数之和[不含自己]
如:6 = 1+2+3
--------------------------------------------------------------
格式化输出 [printf 方法]
方法:
//普通输出
System.out.println(String output);
System.out.print(String output);
//格式化输出
System.out.printf(String ouput,Object... args);
如:
int i = 5;
int j = 17;
//
System.out.println("i = "+i+",j = "+j);
//格式化输出
System.out.printf("i = %d,j = %d\n",i,j);
==
占位符的语法:
%[argument_index$][flag][width][.precision]conversion
常用的conversion有:
d 代表 整数
f 代表 浮点数
b 代表 布尔型
s 代表 字符或字符串
t 代表 日期或时间
...
width 代表这个占位符所占用的位宽。
.precision 代表的是小数位。
flag 代表 标记位
- 表示左对齐。
...
--
案例:
====================
方法[method]
定义:是一小块功能的集合,每个方法都有它的输入与输出,所以,一个
好的方法是一个相对独立的、完整的小功能。
方法的组成部份:[语法]
[修饰符] 返回类型 方法名([参数列表]) [throws 异常类型] {
//方法体
}
--
修饰符 [modifier]
1.访问控制修饰符
所有类 子类 同包 本身
public Y Y Y Y
protected N Y Y Y
[default] N N Y Y
private N N N Y
2. 特殊修饰符
static 静态
abstract 抽象
final 最终
synchronized 同步
native 本地
...
方法可以添加多个修饰符,修饰符之间没有顺序。
所以:
public static void main(String[] args){ }
或
static public void main(Stirng[] args){ }
---
返回类型 【return type】
所有的合法的数据类型都可以做为方法的返回类型。
除此以外,还有一个特殊类型: void 也可以做为方法的返回类型。
如果方法的返回类型被设计成 void,则表示此方法没有返回值,也就是
说,在方法体中,可以没有 return 语句。
如果方法的返回类型不是void,则表示此方法一定有返回值,也就是说,
在方法中,一定要有 return 语句。
思考: 在设计方法时,如何确定方法的返回类型?
--
方法名 【method name】
就是一个方法的名字代号。
方法名应该能够表达出此方法的主要功能。
--
参数列表 【parameter list】
方法的参数,也叫形参,其实本质上就是 局部变量[local variable]
参数语法:
数据类型 形参名
多个参数之间使用逗号隔开.
注:形参【形式上的参数】是没有实际值的。它只有类型。
只有当此方法被调用[invoke]时,形参才会被"实参"赋值.
如:
public class Hehe{
public int add(int a, int b){
int c = a + b;
return c;
}
public static void main(String[] args){
Hehe h = new Hehe();
int result = h.add(5,19); //ok
}
}
//方法的调用:
1).通过 类名.方法名 来调用, 要求此方法必需使用 static 修饰
如:
double d = Math.random(); //类名.方法名
2). 通过 对象.方法名 来调用,此方法没有用 static 修饰
如:
Scanner sc = new Scanner(System.in); //创建对象
int i = sc.nextInt(); //对象.方法名
--------------
例:
完成作业2,以方法的思路来完成:
设计第一个方法,用来判断给定的整数是否是素数
public boolean isPrime(int n){
//...
}
再设计一个方法,负责打印输出指定范围内的素数
public void printPrime(int max){
//....
...
if(isPrime(i)){ // 直接调用
}
}
//最后,在main 方法中调用
public static void main(String[] args){
XXX x = new XXX();
int a = 200;
x.printPrime(a);
}
-------------
作业.
完成猜数字游戏