3.循环结构(for循环)
3.1需求分析
1+2+3+…+100
活到老,学到老。
跑步圈数 10圈
打印店:100页
page = 1;page++;打印一份
page = 2;page++;打印二份
page++…100; 打印100份;
3.2技术分析
A.循环的三要素:
for(初始化表达式(1);条件表达式(2);修改初始化表达式的值(3)){
循环体(4);
}
B:执行流程
1243243
3.3代码实现
ForDemo
package cn.tedu.day05;
/**
-
for循环的实例
-
@author Administrator
*
*/
public class ForDemo {public static void main(String[] args) {
// TODO Auto-generated method stub
/* //打印10次 我们会成功.
for (int i = 0; i < 10; i++) {
System.out.println(“我能成功!”);
}
//打印1+2+3+4…50的和
int sum = 0;
for (int i = 0; i < 51; i++) {
sum = sum + i;
}
System.out.println(sum);//1275
* * * * * * * * * * * * * * * 第一行:有1个* 第五行: 5个* for (int i = 1; i <= 5; i++) {//控制行 for (int j = 1; j <= i; j++) {//控制每一行*个数 System.out.print("* "); } System.out.println(); }*/ //死循环 /*for(;;){ System.out.println("我们很爱学习:学习到深夜。"); }*/ //continue break /*for (int i = 0; i < 6; i++) { for (int j = 0; j < 5; j++) { System.out.println("i = " + i + "," + "j = "+j); } if (i ==2){ break; } }*/ for (int i = 0; i < 6; i++) { for (int j = 0; j < 5; j++) { if (j ==2){ break; } System.out.println("i = " + i + "," + "j = "+ j); } }
//增强型for循环---Person p---后续说到 /*for(Person p : args){ }*/ //99乘法表 1*1=1 1*2=2 int sum = 0; for (int i = 1; i < 10; i++) {//行 for (int j = 1; j <= i; j++) {//列 sum = i * j; System.out.print(j + "*" + i + "=" + sum); System.out.print(" "); } System.out.println(); }
}
}
3.4扩展内容
break和continue的区别
break的关键字可以使用switch-case和循环结构中,用于跳出当前结构。
continue:只能用在循环结构中,用于结束本次循环继续下一次循环。
在java5中引入了一个新的for循环,增强型for循环。
4.循环结构(while/do-while)
4.1需求分析
猜数字游戏:
int num = 250;
guess
循环结构:
循环变量:??? guess
1)system.out.println(“请开始猜”);
int guess = sc.nextInt();
2)guess != num
3)-------1)
1-1000
随机数的产生:
Math.random()----------0.0到.099999999999999…
*1000 -----------------0.0到999.99999…
(int)-----------0到999
+1 ------1到1000
4.2技术分析
while(布尔表达式){
//循环体
}
//如果是true,则一直循环下去
//先判断后执行,有可能一次都不执行
do{
循环体;
}while(条件/布尔表达式);
//无论如何都会执行一次循环体。
新建WhileDemo,写一个1+2+++…+100
package cn.tedu.day05;
/**
-
while循环结构
-
@author Administrator
*
*/
public class WhileDemo {public static void main(String[] args) {
int count = 1;
int sum = 0;
while(count <= 100){
sum += count;
count++;//当count到101跳出循环
}
System.out.println(“sum” + sum);//sum = 5050
}
}package cn.tedu.day05;
import java.util.Scanner;
public class GuessDemo {
public static void main(String[] args) { // TODO Auto-generated method stub //alt+shift+L //new GuessDemo();
/* Scanner scanner = new Scanner(System.in);
System.out.println(“请开始输入你心中的那个数:”);
int guess = scanner.nextInt();
int num = (int) (Math.random()1000 + 1);
while(guess != num){
if(guess == 0){
break;
}
if (guess > num) {
System.out.println(“猜大了”);
}else{
guess = scanner.nextInt();
System.out.println(“猜小了”);
}
System.out.println(“继续猜吧”);
}
if(guess == num){
System.out.println(“恭喜你,猜对了!”);
}else{
System.out.println(“欢迎你再来挑战”);
}/
/*
* 练习:使用do-while写猜数字的游戏
*
*/
Scanner scanner = new Scanner(System.in);
System.out.println(“请输入你心中的那个数字:”);
int guess = scanner.nextInt();;
int num = (int) (Math.random()*1000+1);
do{
if(guess == 0) break; if(guess > num){ System.out.println("猜大了"); }else{ System.out.println("猜小了"); } System.out.println("猜吧,老铁"); guess = scanner.nextInt(); }while(guess != num); if(guess == num){ System.out.println("恭喜你,猜对了!"); }else{ System.out.println("欢迎你再次挑战!"); } } }
作业:
1.设计一个小游戏:
我们手里有21个小球,我们让人和机器先后去取,每次人和机器
只能取1-4个小球,不能多取,也不能不取,谁取到最后一个小球谁就输。
现在请你编写一个程序,要求我们先取,机器后取,机器赢的概率最大,
立于不败之地。
5.数组
5.1
5.2技术分析
A:概念:一种数据类型(引用数据类型),相同数据类型元素的集合。
B:定义
int[] arr = new int[6];
C:初始化:
- int[] arr = new int[6];//0.0.0
- int[] arr = {1,2,3,34,56};
- int[] arr = new int[]{1,2,34,56};
int[] arr;
arr = {1,23,34};//不正确。只能是声明的时候进行初始化
arr = new int[]{1,23,45,7};//正确的
D:数组的访问
- 得到数组的长度
- 得到数组的每一个元素
5.3代码
package cn.tedu.day05;
/*
-
数组的案例
*/
public class ArrayDemo {public static void main(String[] args) {
// TODO Auto-generated method stub
//1.数组的定义
int[] arr = new int[6];
//2.数组的初始化 int[] arr1 = new int[6]; int[] arr2 = {1,2,34}; int[] arr3 = new int[]{2,5,6}; int[] arr4; //arr4 = {2,34,5};//编译不通过 arr4 = new int[]{2,4,5};//正确 //3.数组的访问 //长度 System.out.println(arr1.length);//6 arr[0] = 666; arr[1] = 22; arr[2] = 3; arr[3] = 6; arr[4] = 5; arr[5] = 55; //arr[6] = 77;//数组下标越界---第一个异常 // java.lang.ArrayIndexOutOfBoundsException: 6 System.out.println(arr[5]); //4.数组的遍历 int[] res = new int[5]; for (int i = 0; i < res.length; i++) { res[i] = (int) (Math.random()*100); } for (int i = 0; i < res.length; i++) { System.out.println(res[i]); }
}
}