循环结构
- 顺序结构。从上往下依次执行
- 选择结构。根据条件执行对应的内容
- 循环执行:反复执行、累加问题
只要内容:while、do-while、for。循环嵌套
while循环
while(循环条件)
{
语句;
}
int n = 1
while(n<5){
n++;
}
- 如果循环体只有一条语句,大括号可以省略
- 为避免死循环,小括号后面不要加分号
- n必须先进行初始化
- 循环变量n的值必须被改变
- 不满足条件(while后的条件)终止执行
do-while循环
do-while循环结构,是先执行{}里面的语句,然后再根据后面的while()条件来判断是否再次循环。
注意事项
- 1、do-while至少循环一次。
- 2、循环条件后的分号不能丢
int sum = 0;
int i = 1;
do{
sum += i++;
}while(i<=5);
int flag = (int)(Math.random()*10+1);
int guessNum ;
do {
System.out.println("请输入一个整数");
Scanner in = new Scanner(System.in);
guessNum = in.nextInt();
if(guessNum < flag) {
System.out.println("太小");
}else if(guessNum > flag) {
System.out.println("太大");
}
}while(guessNum != flag);
for循环
for(表达式1(对循环条件初始化 );表达式2(循环条件);表达式3(循环条件进行改变))
{
语句;
}
- 在主方法里面的都是局部变量,因为主方法理论上也是个方法,在方法里面定义的变量都叫做局部变量,局部变量只在定义它的大括号里面有效
- 第一个表达式省略的话,在for循环前面可以进行初始化;
- 第二个表达式省略,必须在for的大括号内加上退出(break);
- 第三个表达式省略的话,必须在循环体里加上条件(如i++)。
嵌套循环
求阶乘
public class Factorial {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int target = in.nextInt();
int result = 0;
for(int i =1; i <= target; i++) {
int temp = 1;
for(int j =1; j <= i; j++) {
temp *= j;
}
result += temp;
}
System.out.println(result);
}
}
break语句
- break语句可以结束当前循环的执行
- 执行完break语句后,循环体中位于break语句后面的语句就不会被执行
- 在多重循环中,break语句只向外跳一层
continue语句
- continue语句只能在循环中进行
- continue语句可以结束当前本次循环的执行,但是要继续下一次循环
- 常见if(表达式1)continue;
debug
- bug:原意指虫子,现在广泛地指,程序中的漏洞、缺陷
调试的作用:用于处理程序逻辑上的错误 - 调试步骤:
F11进入调试
F5进入函数,单步条数
F6不进入函数,单步调试
F7由函数内部,返回调用处
F8一直执行到下个断点处
程序调试(debug)步骤:
- 第一步:设置断点(breakpoint),双击行号前面的蓝色区域,或右键选"Toggle Breakpoint",生成小点就是断点。断点可以设置多个。
- 第二步:执行调试(按F11快捷键)——在eclipse程序界面右键——点击“Debug As”——点击“Java Appcation”。或者点击选项卡中的“虫子”图标。进入debug界面。
- 第三步:Debug界面:
F5:进入方法内部去执行
F6:单步调试(step over)
F7 :由方法内部返回调用处
F8:从一个断点到下个断点
右上角java图标退出debug界面