一、循环结构
for循环
while循环
do while 循环
二、for循环
格式
格式 :
for(初始化语句; 判断条件语句; 控制语句){
循环体;
}
执行流程
1:执行初始化语句 ,只执行一次
2:执行判断语句,结果为true 或false
如果是false 循环结束
如果是true 执行循环体
3:执行控制语句
4:再执行判断语句 回到步骤2执行
案例演示:
public static void main(String[] args) {
// //打印1~10
// for (int i=1;i<11;i++){
// System.out.println(i);
// }
// //打印10~1
// for (int i=10;i>0;i--){
// System.out.println(i);
// }
// //打印1~10的和
// int sum = 0;
// for (int i=1;i<11;i++){
// sum += i;
// System.out.println(i);
// }
// System.out.println("1~10的和为"+sum);
//打印1~100的偶数和、奇数和、所以有和
int sum = 0;
int sum1 = 0;
for (int i=1;i<101;i++){
sum1 += i;
if (i%2==0){
sum += i;
}
// System.out.println(i);
}
System.out.println("1~100的偶数和为"+sum);
System.out.println("1~100的奇数和为"+(sum1-sum));
System.out.println("1~100的和为"+sum1);
}
二、while循环
格式
while循环语句格式:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
for和while的区别: for 循环的循环变量在循环外不能访问,while 循环的循环变量在循环外能访问
案例演示:
//while版本的1~100的和
public class Demo07 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i<101){
sum += i;
i++;
}
System.out.println("1~100的和:"+sum);
}
}
三、do while循环
格式
初始化语句
do{
循环体;
控制条件变量
}while(条件判断语句);
注意:do while 循环至少会执行一次循环体,它是先执行循环体再判断
案例演示
//do while 打印1~10
public class Demo09 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
do{
System.out.println(i);
sum += i;
i++;
}
while (i<11);
System.out.println(sum);
}
}
四、嵌套循环
案例演示
//打印九九乘法表
public class Demo10 {
public static void main(String[] args) {
for (int i=1;i<10;i++){
for (int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
五、控制跳转
break :中断
continue :停止当前循环 继续下一次循环
public static void main(String[] args) {
for (int i = 1;i<=10;i++){
if(i == 3){
// break;
System.out.println("i:"+i);
continue;
// break;
}
System.out.println(i);
}
}
六、方法
具有一定功能的代码块 {} ,在其他语言里被称为函数(C语言)
定义格式:
访问修饰符 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2...){
方法体
return 值;
}
访问修饰符:目前用 public static
返回值类型:基本数据类型 +String +void
方法名,参数名1 :自定义的 符合标识符命名规则【1:数字 字母 下划线 $ 组成 2:不能以数字开头 3:不能是java中的关键字或保留字【goto const】 】
参数类型1: 基本数据类型 +String
return:当有返回值类型的时候写
方法体:拥有功能的代码块
方法定义位置:类里 方法外
方法的调用:
1:直接调用 :方法名()
2:输出调用 : 在输出语句里调用
3:赋值调用 :
注意:方法不调用不执行
案例演示:
// 程序入口
public static void main(String[] args) {
// getSum();
// 输出调用
System.out.println(getSum());
// 赋值调用
int c = getSum();
System.out.println(c/2);
}
// 方法定义位置 返回值类型 int 不要参数
public static int getSum(){
int a = 10;
int b = 20;
int sum = a+b;
return sum;
}
}
课后练习:
//for循环打印1000以内的水仙花数
public static void main(String[] args) {
int count = 0;
for (int i=100;i<1000;i++){
if (i==((i/100)%10)*((i/100)%10)*((i/100)%10)+((i/10)%10)*((i/10)%10)*((i/10)%10)+(i%10)*(i%10)*(i%10)){
count++;
System.out.println("1000以内的水仙花数有:"+i);
}
}
System.out.println("1000以内的水仙花数有"+count+"个");
}
//while版本的水仙花数
public static void main(String[] args) {
int i = 100;
while (i<1000){
int a = i/100%10;
int b = i/10%10;
int c = i%10;
if (i==a*a*a+b*b*b+c*c*c){
System.out.println(i+"是水仙花数");
}
i++;
}
}
//打印直角三角形12345
public class Test01 {
public static void main(String[] args) {
for (int i=1;i<6;i++){
for (int j =1;j<=i;j++){
System.out.print(j);
}
System.out.println();
}
}
}
//打印等腰三角形
public class Test02 {
public static void main(String[] args) {
for (int i=1;i<5;i++){
for (int k=1;k<=4-i;k++) {
System.out.print(" ");
}
for (int j =1; j <= 2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
//打印菱形
public class Test03 {
public static void main(String[] args) {
for (int i=1;i<5;i++){
for (int k=4-i;k>0;k--) {
System.out.print(" ");
}
for (int j=1; j<=2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i=3;i>0;i--){
for (int k=4-i;k>0;k--) {
System.out.print(" ");
}
for (int j=1; j<=2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
//计算2+22+222+2222+22222
public class Test04 {
public static void main(String[] args) {
int sum = 0;
int a = 0;
for (int i=1;i<6;i++){
a = (a*10)+2;
sum += a;
}
System.out.println("2+22+222+2222+22222="+sum);
}
}