java循环语句(个人笔记六)

Lession5 流程语句句 


1 while循环   

while(){ //条件表达式 持行后能返回true或false的一个表达式
      //执行语句
}

特别强调 绝对不要加分号=>  while() ;


//例子 int age=1; while循环死循环
while(age<=10){
System.out.println("学习了"+age+"年");
age++;

}


//例子 while循环输出一年365天
int day=1;
while(day<=365)
{
System.out.println("第"+day+"天");
++day;

}


//例子 输入一个数字,如果这个数字是8888,就结束,如果不是,把它打印出来,继续输入
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int num =scan.nextInt(); //从键盘输入一个数字
while(num!= 8888)
{
System.out.println("您输入的数字是"+num);
System.out.println("输入的不对,请再输入");
num=scan.nextInt();  //再输入
}
System.out.println("输入正确,程序结束");
scan.close();
}
}

//例子 死循环 标准死循环
while(true)  //这是一个死循环
{
System.out.println("我要杀小日本儿");
}

//对于死循环后面编写的代码,编译将出错,因为它不可能被执行到
System.out.println("我还有机会执行到吗");  //错误 Unreachable code

//例子 跳出死循环
int a=10;
while(true)
{
System.out.println("我要杀小日本儿");
a++;
if(a>100){
break;  //从循环中跳出
}
}
System.out.println("我还有机会执行到吗");  //可达

 2 do while

while(条件表达式) {

       循环体

}

//这是do while 循环
do{
循环体
}
while(条件语句);  
和 while 循环的区别

do while 会先执行一遍循环体中的内容 (不管三七二十一 )


//例子 输出12个月
  int month=0;
do{
month++;
System.out.println("当前是第"+month+"月");
}

while(month<12);


//例子,输入一个数字,如果这个数字是8888,就结束,如果不是,把它打印出来,继续输入
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
   int num=0;  //变量在使用前,必须初始化    The local variable num may not have been initialized
   Scanner scan=new Scanner(System.in);
   do {
   num=scan.nextInt();
   System.out.println("你输入的数字是"+num);  
   }
   while(num!=8888); 
   System.out.println("输入正确,程序结束");
   scan.close(); 
}
}

//例子,随机生成10个数,值在1-9之关, 并把最大的挑出来
1) 随机数生成的方法
//java.lang 包下的类,使用的时候,可以不用导包
//Math.random() 能生成一个随机数 ,是个小数,值在 0(包含)-1(不包含)之间
//double num=Math.random();   //生成一个0-1之间的随机小数
double num=(int)(Math.random()*10);  //注意优先级,扩号不能少
System.out.println(num); 

2) 本题
public class Test {
public static void main(String[] args) {
    int max=0;
int i=0;
do{
int num=  -(int) (Math.random()*10);
if(i==0) { //v如果是第一次循环,直接把生成的数赋值给max
max=num;
}
if(max<num){
max=num;
}
System.out.print(num+"\t");
i++;
}
while(i<10); 
System.out.println("最大的数是"+max);
}
}

 3 for循环

for(初始化表达式;条件表达式;循环后的操作表达式){
  //循环体
}

//例一
for(int i=0; i<10;i++){
System.out.println("hello world"+"第"+(i+1)+"遍");
}

//1 执行初始化表达式,只执行一次
//2 执行条件表达式
//3 如果条件成立,执行循环体,条件不成立,循环结束
//4 执行完循环体,执行循环后的执行语句

//例二
int i=0; 
for(System.out.println("哈哈,我就这么初始化不行咋地?");i<3; System.out.println("这就是我循环完要做的事")){
System.out.println("这是循环体");
}
编译报错,第二个表达式,必须是条件表达式(能返回true或false) 才行  //System.out.println("这就是我家的条件表达式");出错


//例三 本例可以编译通过
int i=0;
for(System.out.println("哈哈,我就这么初始化不行咋地?"); i<3; System.out.println("这就是我循环完要做的事")){
i++;
System.out.println("这是循环体");
}
结果:
哈哈,我就这么初始化不行咋地?
这是循环体
这就是我循环完要做的事
这是循环体
这就是我循环完要做的事
这是循环体
这就是我循环完要做的事

//例四   用for 写的死循环
   for(;;){
 //操作使条件表达式永远成立
}
 
//例五 输出 0-99 
int i;
for(i=0;i<100;i++) { //如果这里写成 int i=0,则和上面的定义重复出,编译将出现错误: Duplicate local variable 重复的局部变量
System.out.println(i);
}
System.out.println("现在i的值是"+i);  //这个i是局部变量,在for循环中定义的  i=>100

//例六 求1+2+3+...100 的合 
int s=0;
for(int i=1;i<=100;i++){
s=s+i;
}
System.out.println("合是"+s);  

//例七 求0-10000之间所有能被888整除的数,还有它们的个数
int count = 0;
for (int i = 0; i < 10000; i++) {
if (i % 888 == 0) {
System.out.println(i);
count++;
}
}
System.out.print("能被888整除的数一共有" + count + "个");

猜你喜欢

转载自blog.csdn.net/weixin_41205479/article/details/79721774