顺序结构:从上往下依次执行
选择结构:根据条件执行对应的内容
循环结构:
1.while循环
2.do-while循环
3.for循环
4.循环嵌套
使用 break语句 continue语句跳出循环
while(循环条件)
{
语句;
}
循环输出小于5的数
int n=1;
while(n<5)
{ //n必须进行初始化
//输出n的值 循环变量n的值必须被改变,避免死循环
n++;
}
例:求1-5的累加和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package imoocProj;
public class PlusDemo {
public static void main(String[] args) { int sum=0,i=0; while(i<=5) { sum=sum+i; i++; } System.out.println("sum="+sum); }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package imoocProj;
public class CharDemo {
public static void main(String[] args) { char ch='a'; int n=1; while(ch<='z') { System.out.print(ch); if(n%13==0) System.out.println(); ch++; n++; } }
}
|
使用while循环求1到5的平方和。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class LoopDemo { public static void main(String[] args) { int n=1;
int sum=0;
while(n<=5){ sum=sum+n*n; n++; }
System.out.println("1到5的平方和为:"+sum); }
}
|
do-while 循环
语法格式
do{
语句;
}while(条件);
1.do-while 循环至少执行一次
2.循环条件后的分号不能丢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package imoocProj;
public class DoWhileDemo {
public static void main(String[] args) { int n=1; int sum=0; do { sum=sum+n; n++; }while(n<=5); System.out.println(sum); }
}
|
do-while循环猜字游戏
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| package imoocProj;
import java.util.Scanner;
public class GuessDemo {
public static void main(String[] args) { int number=(int)(Math.random()*10+1); int guess; System.out.println("猜一个介于1到10之间的数"); do { System.out.println("请输入您猜测的数字:"); Scanner sc=new Scanner(System.in); guess=sc.nextInt(); if(guess>number) { System.out.println("太大!"); }else if(guess<number) { System.out.println("太小!"); } }while(number!=guess); System.out.println("您猜中了!答案为"+number);
}
}
|
for循环
for(循环变量初始化①;循环条件②;循环变量变化④){
循环操作③
}
例:
for(int n=1;n<5;n++){
//输出语句;
}
for循环注意事项
1.三个表达式都是可以省略的
2.break语句表示跳出当前循环
练习:编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class LoopDemo { public static void main(String[] args) { int ge,shi,bai; int i,ji,sum; for(i=200;i<=300;i++) { bai=i/100; shi=i%100/10; ge=i%100%10; ji=bai*shi*ge; sum=bai+shi+ge; if((ji==42)&(sum==12)){ System.out.println(i); } } }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package imoocProj;
public class StarDemo {
public static void main(String[] args) { int m=1; int n=1; while(m<=10) { n=1; while(n<=10) { System.out.print("*"); n++; } System.out.println(); m++; }
}
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package imoocProj;
public class JiechengPlus {
public static void main(String[] args) { // 1到10的阶乘 int s=1,sum=0; for(int i=1;i<=10;i++) { s=1; for(int j=1;j<=i;j++) { s=s*j; } sum=sum+s; } System.out.println("1!+2!+3!+..+10!="+sum); }
}
|
用星号输出一个梯形,如下图所示:(使用嵌套for循环完成)
1 2 3 4 5
| *** ***** ******* ********* ***********
|
任务
1、外重循环控制输出行数
2、第一个内重循环控制输出的空格数,依次递减。
注意:由于星号和空格在屏幕上所占的空间不同,所以可以适当调整空格的输出,比如每次循环都输出两个空格。这样输出来的图形会更加接近梯形
3、第二个内重循环控制每行输出的星号数
4、输出完一行的星号和空格后换行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class StarDemo { public static void main(String[] args) { int N=5; for(int i=1;i<=N;i++){ for(int j=1;j<=N-i;j++){ System.out.print(" "); } for(int j=1;j<=2*i+1;j++){ System.out.print("*"); } System.out.println(); } }
}
|
break语句
1.break语句可以结束当前循环的执行
2.执行完break语句后,循环体中位于break语句后面的语句就不会被执行
3.在多重循环中,break语句只向外跳一层
break语句只能用在循环语句和switch语句中,
continue只能用在循环语句中,而且continue语句只是结束当前次的循环执行,但是还要继续下一次的循环。
debug
调试的作用:能看清程序每一步的效果,在需要查看见过的时候,使用debug查看实际结果是否与预期结果一致
调试:设置断点(可设置多个)
debug窗口显示当前运行的什么类当中的什么方法的第几行
Variables(变量):显示当前变量
Breakpoints:当前断点
Outline:大纲
F6:是进行单步调试的快捷键
F5:到方法内部执行
F8:直接跳到下一个断点