/*
循环包括三种:
for循环
while循环
do...while循环
for循环的语法结构:
for( 初始化表达式 ; 布尔表达式 ; 更新表达式){
//需要重复执行的代码片段
//【循环体:由java语句构成】
}
for循环的执行过程、执行原理:
初始化表达式、布尔表达式、封信表达式都不是必须的!
但两个分号是必须的!
初始化表达式最先执行,
并且在整个for循环当中只执行一次
布尔表达式必须是true/false,不能是其他值
for的执行过程:
先执行初始化表达式,并且该表达式只执行一次
判断布尔类型的结果是true还是false
布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式的结果是true还是false
布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式的结果...
...
布尔表达式false
循环结束
布尔表达式false
循环结束
*/
public class ForTest01
{
public static void main(String[] args){
//需求:输出数字1~10
for(int i = 1; i <= 10; i++){
System.out.println(i);
}
/*死循环
for(;;){
System.out.println("死循环");
}
*/
}
}
public class ForTest02
{
public static void main(String[] args){
for(int i = 1; i <= 10; i++){
System.out.println(i);
}
//这个i变量不能在main方法的作用域访问
//System.out.println("i = " + i) //编译错误
//main方法作用域当前的i变量
//只要main方法没有结束,这里的i就能使用
int i; //声明和赋值可以分开
for(i = 1; i <= 10; i++){
System.out.println(i);
//这里可以访问main方法作用域当中的i变量
System.out.println(i); //10
}
}
}
public class ForTest03
{
public static void main(String[] args){
//输出1~10的所有奇数
for(int i = 1; i <= 10; i += 2){
System.out.println("i --> " + i);
}
//输出1~10的所有偶数
for(int i = 2; i <= 10; i += 2){
System.out.println("i --> " + i);
}
for(int i = 10; i > 0; i--){
System.out.println("i --> " + i);
}
for(int i = 10; i > 0;){ //也可以把执行程序写到下面
System.out.println("i --> " + i);
i--;
}
}
}
/*
循环语句和条件语句嵌套使用【for和if嵌套使用】
*/
public class ForTest04
{
public static void main(String[] args){
//找出1~30所有的奇数
//第一种方法:从1开始,每次递增2
for(int i = 1; i < 30; i += 2){
System.out.println(i);
}
//第二种方法:从1开始逐一递增,用if剔除
for(int i = 0; i < 30; i++){
if(i % 2 == 1){
System.out.println(i);
}
}
//以上两种方法,优先使用第一种,
//代码少,循环次数少,效率高
}
}
/*
在前个程序的基础之上,计算1~100奇数的和
*/
public class ForTest05
{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i < 100; i += 2){
sum += i;
}
System.out.println(sum);
}
}
/*
for循环嵌套for循环
*/
public class ForTest06
{
public static void main(String[] args){
//循环体中可以编写其他的控制语句
for(int i=0; i<=10; i++){
for(int j=0; j<3; j++){
System.out.println(j);
}
}
}
}
/*
使用for循环输出九九乘法表
*/
public class ForTest07
{
public static void main(String[] args){
for(int line1 = 1; line1 <= 9; line1++){
for(int line2 = 1; line2 <= line1; line2++){
System.out.print(line1 + "x" + line2 + "=" + (line1 * line2) + " ");
}
System.out.println();
//System.out.print("\n") //也行
}
}
}
/*
编写1~100所有的素数
素数:只能被1和自身整除
*/
public class ForTest08
{
public static void main(String[] args){
/*
//负责取i
for(int i = 2; i <= 100; i++){
//判断i是否为素数
boolean isSuShu = true; //默认将i看作素数
for(int k = 2; k < i; k++){
if(i % k == 0){
isSuShu = false;
break;
}
}
System.out.println(isSuShu ? i + "是素数": i + "不是素数");
}
*/
int count = 0;
for(int i = 2; i <= 100; i++){
boolean isSuShu = true;
for(int k = 2; k < i; k++){
if(i % k == 0){
isSuShu = false;
break;
}
}
if(isSuShu){
count++;
System.out.print(i + " ");
if(count == 8){
System.out.println();
count = 0; //归零
}
}
}
}
}