//循环语句综合例题
说明:
1.不在循环条件部分限制次数的结构:for(;;)或while(true)
2.结束循环有几种方式:
(1)在循环条件部分返回false
(2)在循环体中,执行break
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入 为0时结束程序。 最简单“无限” 循环格式:while(true) , for(;;),无限循环存在的原因是并不 知道循环多少次,需要根据循环体内部某些条件,来控制循环的结束。
import java.util.Scanner;
class ForWhileTest{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int positiveNumber=0; //记录正数的个数
int negativeNumber=0; //记录负数的个数
while(true){ //不确定循环条件,要无限循环
int number=scan.nextInt();//如果用for语句来写,则是:for(;;)
//判断number的正负
if(number>0){
positiveNumber++;
}else if(number<0){
negativeNumber++;
}else{
break; //一旦遇到break,就跳出循环
}
}
System.out.println("输入正数的个数是:"+positiveNumber);
System.out.println("输入负数的个数是:"+negativeNumber);
}
}
/*
嵌套循环的使用
1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
2.
外层循环:循环结构B
内层循环: 循环结构A
3.说明:
(1)内层循环结构遍历一遍,相当于外层循环执行了一次
(2)假设外层循环需要执行了m次,内层循环需要执行n次,则内层循环体执行了m*n次
4.技巧:
外层循环控制行数,内层循环控制列数
*/
class ForForTest{
public static void main(String[] args){
练习一:
//******
//System.out.println("******")
for(int i=1;i<=6;i++){
System.out.print("*");
}
System.out.println('\n');
练习二:
/*
******
******
******
******
*/
for(int j=1;j<=4;j++){ //外层循环
for(int i=1;i<=6;i++){ //内层循环
System.out.print("*");
}
System.out.println();
}
练习三:
/*
*
**
***
****
*****
*/
for(int i=1;i<=5;i++){ //控制行数
for(int j=1;j<=i;j++){ //控制列数
System.out.print("*");
}
System.out.println();
}
练习四:
/*
*****
****
***
**
*
*/
for(int i=1;i<=5;i++){
for(int j=5;j>=i;j--){ //或者是for(int j=1;j<=5-i;j++)
System.out.print("*");
}
System.out.println();
}
练习五:
/*
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
*/
//上半部分:
for(int i=1;i<=5;i++){
for(int j=4;j>=i;j--){
System.out.print(" ");//打印倒着的空格
}
for(int m=1;m<=i;m++){
System.out.print("* ");//打印正着的三角
}
System.out.println();
}
//下半部分:
for(int i=1;i<=4;i++){
for(int j=1;j<=i;j++){
System.out.print(" ");
}
for(int m=4;m>=i;m--){
System.out.print("* ");
}
System.out.println();
}
}
}
练习六:
class NineNineTable{
public static void main(String[] args){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
/*
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
*/
练习八:
/*
100以内所有质数的输出
质数:只能被1和它本身整除的自然数
最小质数为:2
*/
class PrimeNumber{
public static void main(String[] args){
boolean isFlag=true; //标识i是否被除尽过,一旦除尽,修改其值
for(int i=2;i<=100;i++){ //遍历100以内的数
for(int j=2;j<i;j++){
if(i%j==0){ //i被j除尽(逆向思维)
isFlag=false;
}
}
if(isFlag==true){
System.out.println(i);
}
isFlag=true;//重置flag
}
}
}