程序结构
顺序结构:从上往下依次执行
选择结构:根据条件执行对应的内容
循环结构:
1.while循环
2.do-while循环
3.for循环
4.循环嵌套
使用 break语句 continue语句跳出循环
while(循环条件)
{
//语句;
}
循环输出小于5的数
int n=1; //n必须进行初始化
while(n<5)
{
//输出n的值 循环变量n的值必须被改变,避免死循环
n++;
}
例:求1-5的累加和
package imoocProj;
public class PlusDemo {
public static void main(String[] args) {
// 求1-5的累加和
int sum=0,i=0;
while(i<=5) {
sum=sum+i;
i++;
}
System.out.println("sum="+sum);
}
}
package imoocProj;
public class CharDemo {
public static void main(String[] args) {
// 循环输出26个英文小写字母,分两行显示
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的平方和
public class LoopDemo {
public static void main(String[] args) {
int n=1;//定义整型变量n作为循环变量,并初始化
int sum=0;//定义整型变量sum存放和,并初始化
while(n<=5){
sum=sum+n*n;
n++;
}//使用while循环求1到5的平方和
System.out.println("1到5的平方和为:"+sum);//输出平方和
}
}
do-while 循环
语法格式
do{
语句;
}while(条件);
1.do-while 循环至少执行一次
2.循环条件后的分号不能丢
package imoocProj;
public class DoWhileDemo {
public static void main(String[] args) {
// 求1-5的累加和
int n=1;
int sum=0;
do {
sum=sum+n;
n++;
}while(n<=5);
System.out.println(sum);
}
}
do-while循环猜字游戏
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。
public class LoopDemo {
public static void main(String[] args) {
int ge,shi,bai;
//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
int i,ji,sum;
for(i=200;i<=300;i++)//使用for循环
{
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);
}
//如果积等于42并且和为12,则将满足条件的数输出
}
}
}
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++;
}
}
}
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、输出完一行的星号和空格后换行
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:直接跳到下一个断点