控制語句——for練習
語句的嵌套應用
累加求和,計數器
循環嵌套
一、語句的嵌套應用
語句嵌套形式。其實就是語句中還有語句。形式多種多樣,沒有固定的格式和套路。
1、打印偶數
for(int x=1;x<=10;x++)
{ if(x%2==1)
continue;
System.out.prinln(“x=”+x);
}
二、累加求和,計數器
1、獲取1~10的和,並打印。
思路://1,定義變量用於存儲不斷變化的和。
int sum = 0;
//2,定義變量,記錄住不斷變化的被加的數。
int x = 1;
//3,定義循環,重復加法的過程。
用while來體現
while(x<=10)
{
sum = sum + x;
x++;
}
System.out.println("sum="+sum);
循環注意:
一定要明確哪些語句需要參與循環,哪些不需要
代碼如下:
class ForTest2
{
public static void main(String[] args)
{
//用for來體現。
int sum = 0;
for(int x=0; x<=10; x++)
{
sum += x;
}
System.out.println("for sum = "+sum);
}
}
小例子的小小總結:其實這就是累加思想。
原理:通過變量記錄住每次變化的結果。
通過循環的形式,進行累加動作。
2、1~100之間 7的倍數的個數。並打印。
思路:
1,先對1~100進行循環(遍歷)通過循環的形式。
2,在遍歷的過程中,定義條件。只對7的倍數進行操作。
3,因為7的倍數不確定,只要符合條件,就通過一個變量來記錄住這個變化的次數。
步驟:
1,定義循環語句,選擇for語句。
2,在循環中定義判斷。只要是7的倍數即可。使用if語句。條件:7的倍數 x%7==0;
3,定義變量,該變量隨著7的倍數的出現而自增。
代碼如下:
class ForTest3
{
public static void main(String[] args)
{
int count = 0;
for(int x=1; x<=100; x++)
{
if(x%7==0)
//System.out.println("x="+x);
count++;
}
System.out.println("count="+count);
}
}
小小示例的總結:
這就是計數器思想。通過一個變量記錄住數據的狀態變化。也許通過循環完成。
三、循環嵌套。
1,打印一個長方形。
代碼如下:
class ForForDemo
{
public static void main(String[] args)
{
/*
****
****
****
*/
for(int x=0; x<3; x++)//
{
for(int y=0; y<4; y++)
{
System.out.print("*");
}
System.out.println();//只有一個功能就是換行。
}
System.out.println("-------------------");
}
}
****
****
****
對於打印長方形總結:外循環控制的行數。內循環控制的是每一行的列數。也就是一行中元素的個數。
2,打印一個直角三角形,腳尖朝下。
代碼如下:
class ForForDemo
{
public static void main(String[] args)
{
/*
*****
****
***
**
*
發現圖形有很多行,每一個行有很多列。
要使用嵌套循環。原理:形象說法:大圈套小圈。
*/
//int z = 5;
for (int x=0; x<5 ;x++ )//x<5:因為外循環控制行數。一共5行。
{
for (int y=x; y<5 ;y++)
{
System.out.print("*");
}
System.out.println();
//z++;
}
}
}
通過該示例小小總結:發現圖形有很多行,每一個行有很多列。
要使用嵌套循環。原理:形象說法:大圈套小圈。
3,打印正三角、楊輝三角、九九乘法表
/*
*
**
***
****
*****
1
12
123
1234
12345
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
代碼如下:
class ForForTest
{
public static void main(String[] args)
{
/*
*
**
***
****
*****
*/
for (int x=0; x<5 ;x++ )
{
for (int y=0 ; y<=x ; y++ )
{
System.out.print("*");
}
System.out.println();
}
System.out.println("----------------------");
/*
1
12
123
1234
12345
*/
for (int x=1; x<=5; x++)
{
for (int y=1; y<=x;y++ )
{
System.out.print(y);
}
System.out.println();
}
System.out.println("----------------------");
/*
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
for (int x=1; x<=9 ; x++)
{
for (int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
}
通過正三角、楊輝三角、九九乘法表得出一些不是規律的規律:
所謂不是規律的規律:
尖朝上,可以改變條件。讓條件隨著外循環變化。
尖朝下,可以初始化值,讓初始化隨著外循環變化。
4,打印菱形(◇)或稱為金字塔
/*
----*
---* *
--* * *
-* * * *
* * * * *
* * * * *
-* * * *
--* * *
---* *
----*
*/
代碼如下:
class ForForTest2
{
public static void main(String[] args)
{
for (int x=0; x<5 ;x++ )
{
for(int y=x+1; y<5 ; y++)
{
System.out.print(" ");
}
for(int z=0; z<=x ; z++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
5、練習:3000米長的繩子,每天減一半。問多少天這個繩子會小於5米?不考慮小數。
代碼如下:
class ForTest4
{
public static void main(String[] args)
{
int day = 0;
for(int x=3000; x>=5; x/=2)
{
day++;
}
System.out.println("day="+day);
}
}
通過上述練習,曉得了在遇到問題時,首先要明確問題是什麼,其次自己是否有思路,然後將思路轉換成java能識別的步驟,最後再通過java語言實現即可。