package javaday6;
import java.util.Random;
import java.util.Scanner;
public class Test {
/**
* 2.do-while:
* 语法:do{
* //循环体
* }while(条件判断);
* 注意:最少执行循环体的次数为1次。
* 执行过程:
* 1.先执行循环体
* 2.判断循环条件,如果条件为true,则继续执行循环体
* 3.如果条件为false,则结束循环。
*
*
* 3.for:
* 语法:for(表达式一;表达式二;表达式三){
* //循环体
* }
* 1.表达式一:初始化循环变量
* 2.表达式二:判断条件
* 3.表达式三:循环变量的修改
* 执行过程:
* 1.先初始化循环变量(表达式一)
* 2.判断循环条件(表达式二)
* 3.如果条件成立则执行循环体
* 4.循环体执行完成则执行循环变量的修改(表达式三)
* 5.重复执行2,3,4步骤
* 注意:for循环最少执行次数0次
*
* 其他的for循环形式:
* 1.for(;i<10;i++){
* }
* 缺少循环变量的初始化。
* 2.for(int i=0;;i++){
* }
* 缺少判断条件,是一个死循环。
* 3.for(;;){
* }
* 省略了三个表达式,在语法上没有问题,但是是一个死循环
* 4.for(int i;i<10;){}
* 没有语法错误,但是也是死循环。
*
* 循环控制语句:
* 1.break:当在循环体中遇到break关键字就代表循环结束。
* 2.continue:跳过当次循环,进入下一次循环。
* 循环嵌套:
* 循环嵌套的执行过程:
* 1.先执行一次外层的循环,然后在 执行一轮内层循环。
* 2.然后在继续执行一次外层循环,以此类推。
*
* 生成随机数:
* 1.使用Math类
* double d=Math.random();
* 产生的随机数为0-1之间的一个数字,包括0不包括1。
* 2.使用Random对象
* 1.创建Random对象
* Random r=new Random();
* 2.调用random对象的方法产生随机数
* int num=r.nextInt(边界);
* 产生的随机数为>=0 并且<边界的数据。
*
*
*
*/
public static void main(String[] args) {
//使用Math类产生一个随机数
int d=(int) (Math.random()*50);
System.out.println("随机数为:"+d);
//使用Random对象产生一个随机数
Random r=new Random();
int num=r.nextInt(100);
System.out.println(num);
int sum=0;//存放和
int i=0;//循环变量
do {
i++;
//计算累加
sum+=i;
}while(i<100);
System.out.println("1-100的和:"+sum);
System.out.println("--------------for循环--------------");
int sum1=0;
for(int j=1;j<=100;j++) {
sum1=sum1+j;
}
System.out.println("1-100的和:"+sum1);
int a;
for(a=3;a<10;a++) {
}
for(int b=0;;b++) {
if(b==10) {
break;
//System.out.println("sjhgdfhksgdf");
}
System.out.println(b);
}
/*int sum2=0;
for(int b=0;b<10;) {
sum2=sum2+b;
b++;
}
System.out.println(sum2);*/
//输出10到20之间第一个能被3整除的数字
for(int x=10;x<=20;x++) {
if(x%3==0) {
System.out.println(x);
break;
}
}
System.out.println("------------------------");
//输出1-10之间不能被3整除的所有数字
for(int y=1;y<=10;y++) {
//判断是否能被3整除
if(y%3==0) {
continue;
}
System.out.println(y);
}
/**
* 使用*打印如下图形:
* ******
* ******
* ******
* ******
*
* *
* **
* ***
* ****
* *****
* ******
* *
* ***
* *****
* *******
* *****
* ***
* *
*
*
*
*/
//用来控制打印的行数
for(int m=0;m<4;m++) {
for(int n=0;n<6;n++) {
System.out.print("*");
}
System.out.println();//换行
}
/*Scanner s=new Scanner(System.in);
System.out.print("请输入打印的行数:");
//接受用户输入
int row=s.nextInt();
//控制行数
for(int l=1;l<=row;l++) {
//控制*的个数
for(int z=0;z<l;z++) {
System.out.print("*");
}
System.out.println();
}*/
}
}
作业:
- 输出9*9口诀。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
package demo1;
public class Demo85 { public static void main(String[] args) { int i,j; int s=1; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ s=i*j; System.out.print(s+" "); } System.out.println(); } }
}
|
- 题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
package demo1;
import javax.swing.text.StyledEditorKit.ForegroundAction;
public class Demo9 { public static void main(String[] args) { int i,j; for(i=0;i<4;i++){ for(j=4;j>i+1;j--){ System.out.print(" "); }for(j=0;j<2*i+1;j++){ System.out.print("*"); } System.out.println(); }
for(i=0;i<3;i++){ for(j=0;j<i+1;j++){ System.out.print(" ");
}for(j=3;j>=2*i-1;j--){ System.out.print("*"); } System.out.println(); } } } |
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
package demo1;
import java.util.Scanner;
public class Demo10 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入一个数字:"); int m= scanner.nextInt(); int sum=0; int s=0; int a=2; int j=1; while (j<=m) { s=s+a; sum=s+sum; a=a*10; ++j; }
System.out.println("结果为:"+sum);
}
} |
程序分析:关键是计算出每一项的值。
- 随机读取7个数(1—50)的整数值,每读取一个值,程序打印出该值对应个数的*
package demo1;
import java.util.Random;
public class Demo91 { public static void main(String[] args) {
for(int i=1;i<=7;i++){ Random r=new Random(); int num=r.nextInt(50); System.out.print("随机产生的数为:"+num); for(int j=1;j<=num;j++){ System.out.print("*"); } System.out.println(); } }
} |
- 编写一个猜数字游戏
先产生一个(100以内)的随机数,保存在一个变量中,然后让用户通过键盘输入猜,如果用户输入的比随机数大了,就提示用户说太大了,小了就提示用户太小了,然后让用户继续输入猜,至到猜对为止。
提示:使用循环来控制用户输入,如果用户猜对循环结束否则就继续循环。
package demo1;
import java.util.Random; import java.util.Scanner;
public class Demo93 { public static void main(String[] args) { boolean boo=true; Scanner scanner=new Scanner(System.in); Random r=new Random(); int num=r.nextInt(100); System.out.println(num); do{
System.out.println("请输入你猜的的数:"); int m=scanner.nextInt(); if(m>num){ System.out.println("猜大了!!!"); boo =true; }else if(m<num){ System.out.println("猜小了!!!"); boo=true; }else if(m==num){ System.out.println("猜对了!!!"); boo=false; }
}while(boo);
}
}
|