package day02;
/*
循环:for、while、do-while循环
*/
public class Demo01 {
public static void main(String[] args) {
/*
hello world打印5次
1.int i = 0 初始化条件
2.i < 5 循环条件
3.i++ 迭代条件
4.花括号里面是循环体
5.1 --> 2 --> 4 --> 3 --> 2 -->4 -->3 -->2 -->...
*/
for (int i = 0; i < 5; i++) {
System.out.println("Hello World");
}
// i是局部变量,出了for循环就不生效了
// 练习:遍历1~100之间的数字,将3的倍数打印出来,并统计个数
int count = 0;
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
System.out.println(i);
count = count + 1;
}
}
System.out.println("1~100之间的数字有" + count + "个数字是3的倍数");
// ******* 每次打印1个*,一行7个
// 共打印6行,j控制行,i控制列
for (int j = 0; j < 6; j++) {
for (int i = 0; i < 7; i++) {
System.out.print("*"); // 不换行
}
System.out.println(); // 一行结束后换行
}
/*
* *
* **
* ***
* ****
* *****
*/
for (int j = 1; j <= 5; j++) {
for (int i = 1; i <= j; i++) {
System.out.print("*");
}
System.out.println();
}
/*
* *****
* ****
* ***
* **
* *
*/
for (int j = 1; j <= 5; j++) {
for (int i = 5; i >= j; i--) {
System.out.print("*");
}
System.out.println();
}
}
}
/*
1. for循环:计算 7+77+777+…… 前10项的值
2. for循环:计算序列的值:1,-2,3,-4,5,-6……-100
3. 打印九九乘法表(两层for循环)
*/
public class HomeWork02 {
public static void main(String[] args) {
// long s = 7;
// long sum = 0;
// for (int i = 1; i <= 10; i++) {
// sum += (s * (Math.pow(10, i) - 1)) / (9);
// }
// System.out.println(sum);
// 2.序列的值
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum -= i;
} else {
sum += i;
}
}
System.out.println(sum);
// // 3.九九乘法表
// for (int i = 1; i <= 9; i++) {
// for (int j = 1; j <= i; j++) {
// System.out.print(j + "x" + i + "=" + i * j + "\t");
// }
// System.out.println();
// }
}
}
/*
while循环:循环次数固定时使用for循环,不固定时使用while、do-while循环
*/
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
// 1~100累加的和
int i = 0; // 初始化条件
int sum = 0;
while (i <= 100) { // 循环条件
sum = sum + i; // 循环体
i++; // 迭代条件
}
System.out.println("1~100累加的和=" + sum);
/*
练习:从键盘输入不确定个数的整数,统计正数、负数的个数,遇到0时退出
*/
Scanner s = new Scanner(System.in);
System.out.println("输入:");
int a = s.nextInt();
int zsCount = 0;
int fsCount = 0;
while (a != 0) {
if (a > 0) {
zsCount++;
}
if (a < 0) {
fsCount++;
}
a = s.nextInt();
}
System.out.println("正数有" + zsCount + "个," + "负数有" + fsCount + "个");
}
}
/*
do-while:循环体至少执行一次
*/
public class Demo03 {
public static void main(String[] args) {
// 1~100累加
int i = 0; // 初始化条件
int sum = 0;
do {
sum = sum + i; // 循环体
i++; // 迭代条件
} while (i <= 100); // 循环条件
System.out.println("1~100累加=" + sum);
// while、do-while区别
int x = 10;
while (x > 20) { // 循环条件不满足时,循环体不执行
System.out.println("while循环"); // 打印不了
}
int y = 10;
do {
System.out.println("do-while"); // 能打印
} while (y > 20); // 循环条件不满足时,循环体执行一次
// for、while常用,do-while较少用
}
} package day02;
/*
break:跳出循环
continue:跳出本次循环
*/
public class Demo04 {
public static void main(String[] args) {
// 打印1~10的数字,遇到4的倍数就跳出循环。break
for (int i = 1; i <= 10; i++) {
if (i % 4 == 0) {
break; // 123
}
System.out.print(i);
}
System.out.println();
// 打印1~10的数字,遇到4的倍数不打印。continue
for (int i = 1; i <= 10; i++) {
if (i % 4 == 0) {
continue; // 123567910
}
System.out.print(i);
}
System.out.println();
System.out.println("--------------分割线-------------");
abc: // 标签名,自定义的
for (int j = 0; j < 3; j++) {
for (int i = 1; i <= 10; i++) {
if (i % 4 == 0) {
// break跳出包含此关键字的这一层的循环
// break abc; // 跳出标签所在的循环
continue abc; // 结束标签所在的循环
}
System.out.print(i);
}
System.out.println();
}
}
} /*
数组:
固定长度
相同类型
有序的
*/
import java.util.Arrays;
public class Demo05 {
public static void main(String[] args) {
// 声明一个数组并初始化(静态初始化:声明的同时赋值)
int[] ids = {1001, 1002, 1003, 1004};
System.out.println(ids[0]);
System.out.println(ids[3]);
// System.out.println(ids[4]); // 越界
String[] names = {"aaa", "bbb", "ccc", "ddd"};
System.out.println(names.length); // 长度
// 数组的遍历,for循环,使用索引遍历
for (int i = 0; i < names.length; i++) {
System.out.println("hello," + names);
}
System.out.println("=================分割线===================");
// foreach,每次取数组中的一个元素
for (String name : names) {
System.out.println("hello," + name);
}
// 获取数组中的最大值/最小值(打擂的方式)
// 数组中第一个元素赋值给max(min)
// 剩余的每个元素与max比较,若果比max大,则替换掉
int[] nums = {10, 6, 10, 8, 100, 70, 60, 30};
int max = nums[0];
int min = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums > max) {
max = nums;
}
if (nums < min) {
min = nums;
}
}
System.out.println("最大值为:" + max);
System.out.println("最小值为:" + min);
// ☆☆☆☆☆冒泡排序,nums数组从大到小排序
for (int i = 0; i < nums.length; i++) { // 外层控制比较的趟数
for (int j = 0; j < nums.length - i - 1; j++) { // 内层控制每趟比较的次数
if (nums[j] < nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
|