java学习-循环结构
一:while循环
public class whileDemo {
public static void main(String[] args) {
/**
* 循环结构第一种
* while循环
* 语法:
* while(循环条件表达式){
* 循环体;
* }
* 执行步骤:判断表达式结果
* 为真执行循环体,为假跳出循环
* 循环三要素:
* 1.循环条件
* 2.循环体
* 3.循环次数
* 在使用循环的时候一定要注意避免死循环,
* 当条件一直在true时会死循环
* 如何避免?在适当的时候修改循环条件
*
* continue用来跳出本次循环,回到条件判断,如果为真接着循环
* 为假结束循环
* break用来跳出循环结构,不再判断条件,跳到循环结构后面接着循环
*
* 当我们的程序出现问题时,可以使用断点调试
* 断点调试可以让代码一步一步执行
* 方便我们检查出现错误的代码
*
* 使用步骤:
* 1.在你认为可能出现问题的代码的行号左边点击右键选择toggle breakpoint
* 会出现一个小点说明断点加上了
* 2.点击右键选择debug as->java application(调试模式)
*/
//需求:打印一百次hello world
int a=0;
while(a<100){
System.out.println("hello world");
a++;
}
//break练习
int b=0;
while(true){
System.out.println("hello world");
//每次循环自增1
b++;
//判断如果b大于等于10,就跳出循环
if(b>=10){
break;
}
}
//演示continue
int c = 0;
while(c<=9){
c++;
if(c == 5){
//跳出本次循环
continue;
}
System.out.println("hello world+c");
}
}
}
二:dowhile循环
public class DoWhileDemo {
public static void main(String[] args) {
/*
* 循环结构的第二种形式
* do{
* 循环体;
* }while(条件表达式);
* 执行步骤
* 1.先执行一次循环体
* 2.判断条件是否为真
* 为真再次执行循环体
* 为假结束循环
* 即无论条件是真是假,至少执行一次循环体;
*/
int a=0;
do{
System.out.println("hello 花花");
}while(a != 0);
//使用do while 打印十次,花花最美
int b=0;
do{
System.out.println("花花最美");
b++;
}while(b < 10);
}
}
三:for循环
public class ForDemo {
public static void main(String[] args) {
/*
* 第三种循环结构 语法 for(循环增量(1);循环条件(2);循环自增(3);){ 循环体(4); }
* 执行顺序:1->2->4->3->2->4->3
*
*
*/
// 打印10次hello lanou
for (int i = 1; i < 10; i++) {
System.out.println("hello lanou");
}
// 输出0-100之间的偶数
for (int a = 0; a <= 100; a = a + 2) {
System.out.println(a);
}
// 求0-100之间的素数
// 素数,只能被1和本身整除的数
for (int i = 2; i <= 100; i++) {
// 定义一个计数器,用来记录能整除的数的个数
int count = 0;
// 外层循环获得被除数
for (int j = 1; j <= i; j++) {
// 内层循环获得除数
// 判断是否被整除
if (i % j == 0) {
count++;
}
}
// 内存循环结束后,说明已经把从1到这个数自身的数都判断过了
// 最后判断找到的能整除的除数的个数,如果为2 ,说明是素数
if (count == 2) {
System.out.println(i + "是素数");
}
}
}
}
练习:求水仙花数 100-1000
public class ForDemo2 {
public static void main(String[] args) {
//求水仙花数 100-1000
/*
* 153是一个水仙花数
* 1的立方=1
* 5的立方=25
* 3的立方=27
*/
//水仙花数?各位的立方之和等于该数本身
for(int i=100;i<=999;i++){
//获取个位数
int a=i%10;
//获取十位
int b=i % 100 / 10;
//获取百位
int c = i / 100;
if(a*a*a + b*b*b + c*c*c==i){
System.out.println(i);
}
}
//****
//****
//****
//****
for(int i=1;i<3;i++){
for(int j=1;j<=2;j++){
System.out.println("*****");
}
}
//*
//**
//***
//****
for(int i=1;i<5;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}