流程控制语句

1.顺序结构

代码从主函数开始逐行向下运行,简单的来说就是按顺序运行。顺序结构是一种宏观的代码运行结构。

2.选择结构

  if语句 

(1)单分支 if 语句


单分支 if 语句是指当且仅当条件为 true 时执行一个动作 。
单分支 if 语句的语法如下:

if ( 布尔表达式 ){

语句( 组);

}

if语句:计算机在执行时先判断布尔表达式是否为真,为真时执行if中的语句。如图所示

流程图: 

                                         

java里if里的return继续执行 java if then_循环

 举个例子说明下:

/*
数据:整数 5 2
步骤:
1输入一个整数
2判断该数字如果是5的倍数,打印HiFive;如果被 2 整除,打印 Hi Even。
*/
class Demo00{
    public static void main(String[] args){
            //1
           Scanner input = new Scanner(System.in);
            System,out.println ("请输入一个整数:");
            int number = input.nextlnt;
            //2
            if (number % 5 == 0)
            System.out.println("HiFive");
            if (number % 2 == 0)
            System.out. println("HiEven");
    }
}

(2)双分支 if-else 语句
双分支 if 语句的语法如下:
if (布尔表达式){
语句(组);
}else{
语句;
}
if-else语句:如果布尔表达式的计算结果为 true, 则执行条件为 true 时该执行的语句;否则,执行条件为 false 时该执行的语句。通俗的说就是如果满足这个条件则执行if中的语句,否则就执行else中的语句。

流程图: 

java里if里的return继续执行 java if then_选择_02

/*
数据:整数  2 
步骤:
1输入一个整数
2判断 这个数对2求余数余数为0是偶数否则是奇数
*/
class Demo00{
    public static void main(String[] args){
            //1
           Scanner input = new Scanner(System.in);
            System.out.printl n ("请输入一个整数:");
            int number = input.nextInt();
            //2
            if(number % 2 == 0){
            System.out.printl("这个数是偶数");
            }else
            System.out.println("这个数是奇数数");
    }
}

(3)嵌套的 if 语句

if(条件1){
    条件1为true时执行的代码;
         if(条件2){
            条件2为true时执行的代码;
         }else{ 
                 条件2为false时执行的代码;
                }
   }else{
             条件1为false时执行的代;
}
嵌套的 if 语句:就是if-else中在有个if-else:判断方式和if-else一致,只不过是多来几次。

 举个例子说明下:

/*
数据:i j k 
步骤:
1.判断i,j,k
2.输出结果
*/
class Demo00{
    public static void main(String[] args){
        public static void main(String[] args) {
           int i = 3;
           int j = 6;
           int k = 10;
           1f(i > k){
             if (j > k)
             System.out.println("i and» j are greater than k");
          }else
              System.out.println("i is less than or equal to kM);

  }
}

多分支 if - else 语句

if(条件1){
}else if(条件2){
语句;
}else if(条件3){
语句;
}else{
语句;
}

举个例子说明下:

流程图: 

 

java里if里的return继续执行 java if then_顺序_03

/*
数据:整数  
步骤:
1输入一个整数
2对这个数判断
3输出成绩
*/
class Demo00{
    public static void main(String[] args){
        public static void main(String[] args) {
            //1
           Scanner input = new Scanner(System.in);
            System.out.print("请输入一个整数:");
            double score = input.nextDouble();
            //2
            if (score >= 90.0)
                System.out.print("AM");
            else
                if (score >= 80.0)
                    System.out.print("B");
                else
                    if(score >= 70.0)
                        System.out.print("C");
                    else
                        if (score >= 60.0)
                            System.out.print("D");
                        else
                            System.out.print("F");
    }
}

switch语句

switch语句一般在多选情况下用

switch(变量){

    case 值1:  执行语句1:break;

    case 值2:  执行语句2: break;

    case 值3:执行语句3; break;

    deafult:   执行语句n:break;

}

switch语句遵循:

(1)  switch 表达式必须能计算出一个 char 、 byte 、 short , int 或者 String 型值 , 并且必 须总是要用括号括住。


(2) 当 switch 表达式的值与 case 语句的值相匹配时 , 执行从该 case 开始的语句 , 直到遇到一个 break 语句或到达该 switch 语句的结束 。

(3)  默认情况 ( default ) 是可选的 , 当没有一个给出的 case 与 switch 表达式匹配时 , 用来执行该操作。

(4)  关键字 break 是可选的 。 break 语句会立即终止 switch 语句 。



 


 


 流程图:

java里if里的return继续执行 java if then_循环_04

 举个例子说明下:

/*
数据:电脑随机产生的一个数字com 用户输入的一个数字usr
    0 1 2
    剪刀 石头 布
步骤:
1.提示用户输入一个数字
2.计算机随机产生一个数字
3.将两个数字进行对比,分输赢
    平局  com==usr
    用户赢 usr=0 com=2 | usr=1 com=0 | usr=2 com=1
    用户输 剩下的都是用户输

随机数
    Math.random() [0,1.0)*3 -> [0,3.0)->(int)[0,3.0)
    Random nextInt(n)
*/
import java.util.*;
class Demo03_06{
    public static void main(String[] args){
        //1.
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入 剪刀0 石头1 布2:");
        int usr=scanner.nextInt();
        //2.
        Random random=new Random();
        int com=random.nextInt(3);

        String usrStr="";
        String comStr="";
        switch(usr){
            case 0: //if usr==0
                usrStr="剪刀"; 
                break;
            case 1:// if usr==1
                usrStr="石头";
                break;
            case 2:// if usr==2
                usrStr="布";
                break;
        }
        switch(com){
            case 0: 
                comStr="剪刀"; 
                break;
            case 1:
                comStr="石头";
                break;
            case 2:
                comStr="布";
                break;
        }
        //3.
        if(usr==com){
            System.out.printf("用户是%s,电脑是%s,平局",usrStr,comStr);
        }else if(usr==0&&com==2 || usr==1&&com==0 || usr==2&&com==1){
            System.out.printf("用户是%s,电脑是%s,用户赢",usrStr,comStr);
        }else{
            System.out.printf("用户是%s,电脑是%s,用户输",usrStr,comStr);
        }
    }
}

3.循环结构

循环结构的作用:主要解决重复性执行的代码。

一般来说 如果已知重复次数的循环 ,使用for循环;不知重复次数但是已知结束条件的循环,用while循环。

  循环的四要素

(1)循环初始化。  指的就是循环从什么时候开始执行,从哪开始执行

(2)循环继续条件。  什么情况循环继续执行/反过来说,循环何时结束

(3)循环体。  就是我们需要被多次循环执行的代码块

(4)循环的周期。步长,间距  当前循环和下一次循环之间的变更

举个例子说明下:

比如说 向前走10步:其中循环初始化是 刚开始的第1步,也就是第0步;循环继续条件是当前的步数有没有到是10;循环体是向前走1步;循环的周期是当前步数与下一个步数的间。
再比如说 向前走直到碰墙为止:其中循环初始化是 刚开始的第1步,也就是第0步;循环继续条件是是否碰墙;循环体是向前走1步;循环的周期是当前步数与下一个步数的间隔是1。

while循环

while 循环的语法如下 :


while( 循环继续条件){  
         // 循环体
           语句;
}

while 循环 先对循环继续条件判断,是真则继续执行循环体为假则不执行,执行后结束条件是循环继续条件为假。


 循环设计策略

一个正确的循环对编程新手来说 , 并不是件容易的事 。 编写循环时应该考虑如下三 个步骤:

第一步 : 确定需要重复的语句 。

第二步 : 将这些语句放在一个循环中 , 如下所示 :

while ( true ) {

        语句组 ;

}

第三步 : 为循环继续条件编码 , 并为控制循环添加适合的语句 。

while ( 循环继续条件 ) {

        语句组 ;

        用于控制循环的附件语句 ;

while 循环

                        

java里if里的return继续执行 java if then_流程控制语句_05

举个例子说明下:

/*
数据:sum i 
步骤:
1.定义
2.计算从1加到10
3.输出
*/
Class Demo03_08{
    public static void main(String[] args){
        //1.
        int sum = 0;
        int i = 1;
        //2/
            while (i < 10){
                sum = sum + 1;
                i++;
            }
        3.//
        System.out.println("sum=" + sum);
    }
}

while循环的死循环示例: 

class Test01{
    public static void main(String[] args){
        //计算1+2+3+....+99+100
        //正常
        int sum=0;
        int i=1;         //1.循环初始化
        while(i<=100){  //2.循环的继续条件
            sum=sum+i;  //3.循环体
            i++;        //4.循环的步长
        }
        System.out.println(i);
        System.out.println(sum);
//死循环:循环一直不出来 CPU在一直执行循环体
         while(true){    //此处必须写条件表达式
            System.out.println("while死循环");
        }
   }
}

for循环

 for循环的书写:
for(1循环的初始化 ;  2循环的继续条件 ; 4循环的步长 ){

         3循环体

}

执行顺序:1-2-3-4-2-3-4-2-3-4-2-3-4 一直到2不满足位置结束

 for循环流程图:

                    

java里if里的return继续执行 java if then_java里if里的return继续执行_06

举例说明:

class Test02{
public static void main(String[] args) { 
          int sum=1;  
          //前100个数相乘
        for (int i=1; i <= 100; i++) { 
               sum = sum * sum;
        }
        System.out.println("结果是:" + sum);
   }
}

for循环嵌套

for(循环的初始化 ;  循环的继续条件 ; 循环的步长 ){       

       for(循环的初始化 ;  循环的继续条件 ; 循环的步长 ){

                         循环体;
        }
}

for循环嵌套:其实就是第二个for是第一个循环体。

举个例子说明下: 

class sdfg{
public static void main(String[] args) { 
            //1打印出1-9 9个数字
            for (int j = 1;j <= 9;j++){
                System.out.print("   "+ j);
            } 
            System.out.println("\n --------------------------------");
            //2打印的数是行数*列数
            for (int i = 1;i <= 9;i++){
                  System.out.printf("");
                for (int j = 1;j <= 9;j++){
                        System.out.printf("%4d", i * j);
                    }
                    System.out.println();
       }
   }
}
结果:
/*
结果是:
   1   2   3   4   5   6   7   8   9
 ------------------------------------
   1   2   3   4   5   6   7   8   9
   2   4   6   8  10  12  14  16  18
   3   6   9  12  15  18  21  24  27
   4   8  12  16  20  24  28  32  36
   5  10  15  20  25  30  35  40  45
   6  12  18  24  30  36  42  48  54
   7  14  21  28  35  42  49  56  63
   8  16  24  32  40  48  56  64  72
   9  18  27  36  45  54  63  72  81
*/

for循环死循环示例:

for(;;){    //循环的初始化 ;  循环的继续条件 ; 循环的步长 都可以为空
            System.out.println("for死循环");
        }

习题练习

1

java里if里的return继续执行 java if then_流程控制语句_07

/*
数据:a b c delt r1 r2
步骤:
1.提示用户输入abc三个参数
2.计算delt=b*b-4*a*c
3.判断delt的值
    3.1 delt>0
        输出两个解
    3.2 delt==0
        输出一个解
    3.3 delt<0
        无实数解
*/
import java.util.Scanner;
class  Demo03_01{
    public static void main(String[] args){
        //1.提示用户输入abc三个参数
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入a,b,c:");
        double a=scanner.nextDouble();
        double b=scanner.nextDouble();
        double c=scanner.nextDouble();
        //2.计算delt=b*b-4*a*c
        double delt=b*b-4*a*c;
        //3.判断delt的值
        if(delt>0){
            double r1=(-b+Math.sqrt(delt))/(2*a);
            double r2=(-b-Math.sqrt(delt))/(2*a);
            System.out.printf("r1=%.2f,r2=%.2f",r1,r2);
        }else if(delt==0){
            double r=(-b-Math.sqrt(delt))/(2*a);
            System.out.printf("r=%.2f",r);
        }else{
            System.out.println("无实数解!");
        }
    }
}

2

java里if里的return继续执行 java if then_顺序_08

/*
  数据:a b c d e f 
 步骤:
 1.输入数值
 2.判断k的值
 3.计算x y
 */
import java.util.Scanner;
public class Text02 {
		public static void main(String [] args) {
			//1.输入数值
			Scanner input = new Scanner(System.in);
			System.out.print("请输入a、b、c、d、e、f的值:");
			double a = input.nextDouble();
			double b = input.nextDouble();
			double c = input.nextDouble();
			double d = input.nextDouble();
			double e = input.nextDouble();
			double f = input.nextDouble();
			//2.判断k的值
			double k = a * d - b * c ;
			if(k == 0) 
				System.out.println("无结果 ");
			else {
				//3.计算x y
				double x = (e * d - b * f)/(a * d - b * c);
				double y = (a * f - e* c)/(a * d - b * c);
				System.out.println("x的值:" + x +"y的值:" + y);
			}	
			
		}
}

3

 

/*
数据:今天的周几 未来的天数 未来的周几
      (0+12)%7=5
      (4+4)%7=1
      (今天的周几+未来的天数)%7=未来的周几
      1月1日是周一 1%7=1
      1 2 3 4 5 6 7
      8 9 10 11 12 13 14
      15 16 17 18 19 20
      1月20日 20%7=6
步骤:
1.输入今天是周几
2.输入未来的几天
3.打印未来的几天是周几
*/
import java.util.Scanner;
class Demo03_03{
    public static void main(String[] args){
        //1.输入今天是周几
        Scanner scanner=new Scanner(System.in);
        System.out.print("今天是周几:");
        int today=scanner.nextInt();
        //2.输入未来的几天
        System.out.print("未来的几天:");
        int future=scanner.nextInt();
        //3.打印未来的几天是周几
        int futureDay=(today+future)%7;

        String todayStr="";
        String futureDayStr="";
        
        if(today==0){
            todayStr="周日";
        }else if(today==1){
            todayStr="周一";
        }else if(today==2){
            todayStr="周二";
        }else if(today==3){
            todayStr="周三";
        }else if(today==4){
            todayStr="周四";
        }else if(today==5){
            todayStr="周五";
        }else if(today==6){
            todayStr="周六";
        }

        if(futureDay==0){
            futureDayStr="周日";
        }else if(futureDay==1){
            futureDayStr="周一";
        }else if(futureDay==2){
            futureDayStr="周二";
        }else if(futureDay==3){
            futureDayStr="周三";
        }else if(futureDay==4){
            futureDayStr="周四";
        }else if(futureDay==5){
            futureDayStr="周五";
        }else if(futureDay==6){
            futureDayStr="周六";
        }
        System.out.println("今天是"+todayStr+",未来的日子是"+futureDayStr);
    }
}

4

java里if里的return继续执行 java if then_流程控制语句_09

/*
数据:num 
步骤:
1.输入一个数字
2.拼接出该数字的反序
3.输出
12345
12345%10=5 12345/10=1234
1234%10=4  1234/10=123
123%10=3   123/10=12
12%10=2    12/10=1
1%10=1     1/10=0
54321
5*10000+4*1000+3*100+2*10+1
(5*1000+4*100+3*10+2)*10+1
((5*100+4*10+3)*10+2)*10+1
(((5*10+4)*10+3)*10+2)*10+1
((((0*10+5)*10+4)*10+3)*10+2)*10+1

sum=0
sum=sum*10+5;   //5
sum=sum*10+4;   //54
sum=sum*10+3;   //543
sum=sum*10+2;   //5432
sum=sum*10+1;   //54321

*/
import java.util.Scanner;
class Demo03_04{
    public static void main(String[] args){
        //1.输入一个数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int num=scanner.nextInt();
        int temp=num;
        //2.拼接出该数字的反序
        int sum=0;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        sum=sum*10+num%10;
        num/=10;
        if(sum==temp){
            System.out.println("是回文");
        }else{
            System.out.println("不是回文");
        }
    }
}

5

java里if里的return继续执行 java if then_java里if里的return继续执行_10

/*
数据:电脑随机产生的一个数字com 用户输入的一个数字usr
步骤:
1.提示用户输入一个两位数字
2.计算机随机产生一个两位数字
3.将每个数字拆开,分别进行对比,分输赢
a=usr%10; b=usr/10; c=com%10; d=com/10
*/
import java.util.*;
class Demo03_05{
    public static void main(String[] args){
        //1.提示用户输入一个两位数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入 一个数:");
        int usr=scanner.nextInt();
        //2.计算机随机产生一个两位数字
        Random random=new Random();
        int com = random.nextInt(99);
        String.format("%02d",usr);
        int m = usr;
        int n = com;
        //3.将每个数字拆开,分别进行对比,分输赢
        int a=m%10;
        int b=m/10;
        int c=n%10;
        int d=n/10;
        if(usr == com){
            System.out.println("奖金10000美元");
        }else if(a==d&&b==c){
             System.out.println("奖金300美元");
        }else
        if(a==c||a==d||b==c||b==d){
            System.out.println("奖金1000美元");
        }else{
            System.out.println("没有获奖");
        }
    }
}

 6

java里if里的return继续执行 java if then_java里if里的return继续执行_11

/*
数据:电脑随机产生的一个数字com 用户输入的一个数字usr
    0 1 2
    剪刀 石头 布
步骤:
1.提示用户输入一个数字
2.计算机随机产生一个数字
3.将两个数字进行对比,分输赢
    平局  com==usr
    用户赢 usr=0 com=2 | usr=1 com=0 | usr=2 com=1
    用户输 剩下的都是用户输

随机数
    Math.random() [0,1.0)*3 -> [0,3.0)->(int)[0,3.0)
    Random nextInt(n)
*/
import java.util.*;
class Demo03_06{
    public static void main(String[] args){
        //1.提示用户输入一个数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入 剪刀0 石头1 布2:");
        int usr=scanner.nextInt();
        //2.计算机随机产生一个数字
        Random random=new Random();
        int com=random.nextInt(3);

        String usrStr="";
        String comStr="";
        switch(usr){
            case 0: //if usr==0
                usrStr="剪刀"; 
                break;
            case 1:// if usr==1
                usrStr="石头";
                break;
            case 2:// if usr==2
                usrStr="布";
                break;
        }
        switch(com){
            case 0: 
                comStr="剪刀"; 
                break;
            case 1:
                comStr="石头";
                break;
            case 2:
                comStr="布";
                break;
        }
        //3.将两个数字进行对比,分输赢
        if(usr==com){
            System.out.printf("用户是%s,电脑是%s,平局",usrStr,comStr);
        }else if(usr==0&&com==2 || usr==1&&com==0 || usr==2&&com==1){
            System.out.printf("用户是%s,电脑是%s,用户赢",usrStr,comStr);
        }else{
            System.out.printf("用户是%s,电脑是%s,用户输",usrStr,comStr);
        }
    }
}

7

java里if里的return继续执行 java if then_循环_12

/*
数据:星期几 h 某月的第几天 q 月份m 世纪数 j 该世纪第几年k 年份year
步骤:
1.提示用户输入年份,月份,日期
2.若月份为1月2月则m=13 14  year=year-1
3.计算星期hj
*/
import java.util.Scanner;
class Demo03_07{
    public static void main(String[] args){
        //1.提示用户输入年份,月份,日期
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入年份:");
        int year = scanner.nextInt();
        System.out.print("请输入月份1-12:");
        int m = scanner.nextInt();
        System.out.print("请输入日期1-31:");
        int q = scanner.nextInt();
        //2.若月份为1月2月则m=13 14  year=year-1
        if(m == 1 || m == 2){
            year = year - 1;
            m = m + 12;
        }
        //3.计算星期hj
        int h =(day+26*(month+1)/10+year%100+year%100/4+year/100/4+5*year/100)%7;
        String hStr="";
        switch(h){
            case 0: 
               System.out.println("今天是星期日");
                break;
            case 1:
               System.out.println("今天是星期一");
                break;
            case 2:
               System.out.println("今天是星期二");
                break;
            case 3:
              System.out.println("今天是星期三");
                break;
            case 4:
              System.out.println("今天是星期四");
                break;   
            case 5:
               System.out.println("今天是星期五");
                break;   
            case 6:
               System.out.println("今天是星期六"—);
                break;
        }
    }
}

 8

java里if里的return继续执行 java if then_循环_13

 

/*
数据:圆的圆心 圆的半径 点的坐标 距离
步骤:
1.提示用户输入点的坐标
2.计算点到圆心之间的距离
3.判断距离和半径之间的关系
    距离>半径   点在圆外
    距离==半径  点在圆上
    距离<半径   点在圆内
*/
import java.util.Scanner;
class Demo03_08{
    public static void main(String[] args){
        //1.提示用户输入点的坐标
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入坐标点:");
        double x=scanner.nextDouble();
        double y=scanner.nextDouble();
        //2.计算点到圆心之间的距离
        double xo=0;
        double yo=0;
        double radius=10;
        double distance=Math.sqrt(Math.pow(x-xo,2)+Math.pow(y-yo,2));
        //3.判断距离和半径之间的关系
        if(distance>radius){
            System.out.println("点在圆外");
        }else if(distance==radius){
            System.out.println("点在圆上");
        }else{
            System.out.println("点在圆内");
        }
    }
}

9

java里if里的return继续执行 java if then_顺序_14

/*
数据:三角形的三个顶点的坐标
步骤:
1.提示用户输入一个点的坐标
2.先大致判断一下坐标的范围
3.再精确的判断坐标的范围
*/
import java.util.Scanner;
class Demo03_09{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1.提示用户输入一个点的坐标
        System.out.print("请输入一个坐标:");
        double x=scanner.nextDouble();
        double y=scanner.nextDouble();
        //2.先大致判断一下坐标的范围
        //3.再精确的判断坐标的范围
        if(x>=0&&x<=200&&y<=-0.5*x+100){
            System.out.println("点再三角形内");
        }else{
            System.out.println("点再三角形外");
        }
    }
}

 10

java里if里的return继续执行 java if then_循环_15

/*
数据:大矩形的中点坐标、宽、高;小矩形的宽、高、中点坐标
步骤:
1.先输入大矩形的中心,宽和高
2.再输入小矩形的中心,宽和高
3.找小矩形在大矩形中极限
4.找小矩形与大矩形重叠的极限
*/
import java.util.Scanner;
class Demo03_10{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1.先输入大矩形的中心,宽和高
        System.out.print("请输入第1个矩形的信息:");
        double x1=scanner.nextDouble();
        double y1=scanner.nextDouble();
        double w1=scanner.nextDouble();
        double h1=scanner.nextDouble();
        //2.再输入小矩形的中心,宽和高
        System.out.print("请输入第2个矩形的信息:");
        double x2=scanner.nextDouble();
        double y2=scanner.nextDouble();
        double w2=scanner.nextDouble();
        double h2=scanner.nextDouble();
         //3.找小矩形在大矩形中极限
        double inXMin=x1-(w1-w2)/2;
        double inXMax=x1+(w1-w2)/2;
        double inYMin=y1-(h1-h2)/2;
        double inYMax=y1+(h1-h2)/2;
        //4.找小矩形与大矩形重叠的极限
        double outXMin=x1-(w1+w2)/2;
        double outXMax=x1+(w1+w2)/2;
        double outYMin=y1-(h1+h2)/2;
        double outYMax=y1+(h1+h2)/2;
        if(x2>=inXMin&&x2<=inXMax&&y2>=inYMin&&y2<=inYMax){
            System.out.println("小矩形在大矩形里面!");
        }else if(x2<=outXMin||x2>=outXMax||y2<=outYMin||y2>=outYMax){
            System.out.println("小矩形在大矩形外面!");
        }else{
            System.out.println("小矩形和大矩形相交!");
        }
    }
}

 11

java里if里的return继续执行 java if then_流程控制语句_16

/* 
数据:输入de数字
1.输入一个数字
2.再判断数字是否为0如果为0则退出不是则继续
3.计算总和,正的数的个数,负的数个数,平均值
*/
import java.util.Scanner;
class Demo03_11{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        double sum=0;  //总和
        int positives=0;    //正数的个数
        int negatives=0;    //负数的个数
        //1.输入一个数字
        System.out.print("请输入若干数字:");
        while(true){   //不管三七二十一 先进来再说
            int num=scanner.nextInt();
            //2.再判断数字是否为0如果为0则退出不是则继续
            if(num!=0){
                sum+=num;
                if(num>0){
                    positives++;
                }else{
                    negatives++;
                }
            }else{
                break;  //跳出当前循环
            }
        } 
        //3.  
        if(positives+negatives==0){
            System.out.println("没有其他数字的输入,除了0");
        }else{
            System.out.println("正数的个数"+positives);
            System.out.println("负数的个数"+negatives);
            System.out.println("总和"+sum);
            System.out.println("平均值"+sum/(positives+negatives)); 
        }
    }
}

 12

java里if里的return继续执行 java if then_顺序_17

/*
数据:n1 n2 gcd
步骤:
1.输入两个数字
2.检查是否为公约数
3.输出最大公约数gcd
*/
import java.util.Scanner;
class Demo03_12{
    /* 
    21  42
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16~21
    3 7
    */
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1.输入两个数字
        System.out.print("请输入两个数字:");
        int n1=scanner.nextInt();
        int n2=scanner.nextInt();
        //2.检查是否为公约数
        int gcd=1;
        for(int i=n1<n2?n1:n2;i>=1;i--){
            if(n1%i==0&&n2%i==0){
                gcd=i;
                break;
            }
        }
        //3.输出最大公约数
        System.out.println(gcd);

    }
}

 13

java里if里的return继续执行 java if then_java里if里的return继续执行_18

/* 
120 2~120 ->2
60  2~60  ->2
30  2~30  ->2
15  2~15  ->3
5   2~5   ->5
1   
*/
import java.util.Scanner;
class Demo03_13{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int num=scanner.nextInt();
        while(true){
            for(int i=2;i<=num;i++){
                if(num%i==0){
                    System.out.print(i+" ");
                    num=num/i;
                    break;
                }
            }
            if(num==1){
                break;
            }
        }
    }
}

 14

java里if里的return继续执行 java if then_顺序_19

/*
数据:给出的数字模型
1.for循环每个的行数
2.for循环没行的空隔
3.for循环每行的列数
分析
 4  3  2  1 2 3 4
-3 -2 -2  0 1 2 3
第4行 x∈[-3,3] y=|x|+1
第5行 x∈[-4,4] y=|x|+1
*/
import java.util.Scanner;
class Demo03_14{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入行数:");
        int line=scanner.nextInt();
        for(int i=1;i<=line;i++){          //行数
            for(int k=1;k<=(line-i);k++){  //空格
                 System.out.print("  ");
            }
            for(int x=-(i-1);x<=i-1;x++){   //列
                if(line<10){
                    System.out.printf("%-2d",Math.abs(x)+1);
                }else{
                    System.out.printf("%-3d",Math.abs(x)+1);
                }
            }
            System.out.println();
        }
    }
}

 15

java里if里的return继续执行 java if then_java里if里的return继续执行_20

/*
数据:给出的数字模型
步骤:
1.for循环每个的行数
2.for循环每行的列数
*/
class Demo03_15{
    public static void main(String[] args){
         //第一个
        for(int i=1;i<=6;i++){            //行数
            for(int j=1;j<=i;j++){        //列
                System.out.print(j+" ");
            }
            System.out.println();//换行
        }
        //第二个
        System.out.println("==========");
        for(int i=1;i<=6;i++){            //行数
            for(int j=1;j<=7-i;j++){      //列
                System.out.print(j+" ");  //输出数字
            }
            System.out.println();         //换行
        }
        //第三个
        System.out.println("==========");
        for(int i=1;i<=6;i++){         //行数
            for(int k=1;k<=6-i;k++){   //空格数
                System.out.print("  ");  
            }
            for(int j=i;j>=1;j--){
                System.out.print(j+" "); //输出数
            }
            System.out.println();///换行
        }
        //第四个
        System.out.println("==========");
        for(int i=1;i<=6;i++){           //行数
            for(int k=1;k<=i-1;k++){     //每行空格数
                System.out.print("  ");  //列
            }
            for(int j=1;j<=7-i;j++){
                System.out.print(j+" ");
            }
            System.out.println();
        }
    }
}

16

/*
数据:数据:给出的数字模型
1.for循环每个的行数
2.for循环没行的空隔
3.for循环每行的列数
分析:
第4行  
         1  2  4 8 4 2 1
         0  1  2 3 2 1 0
      x -3 -2 -1 0 1 2 3
第5行
        1 2 4 8 16 8 4 2 1
        0 1 2 3 4  3 2 1 0
    x  -4-3-2-1 0  1 2 3 4
*/
class Demo03_16{
    public static void main(String[] args){
        for(int i=1;i<=8;i++){
            for(int k=1;k<=8-i;k++){
                System.out.print("    ");
            }
            for(int x=-(i-1);x<=i-1;x++){
                System.out.printf("%4d",(int)Math.pow(2,i-1-Math.abs(x)));
            }
            System.out.println();
        }
    }
}
/*
提示:
对于打印一些对称性的三角形图案或者是类似的问题
尽量向绝对值考虑
*/

17

java里if里的return继续执行 java if then_顺序_21

/*
思路分析:
素数就是这个数从2开始一直到除自己以外的数相除有余数

*/
class Demo03_17{
    public static void main(String[] args){
      int count = 0;                   //标记素数的个数
     for(int num = 2;num <= 1000;num++){ //2-1000的数
         boolean flag = true;          //对这个数标记,一开始为true
      for(int i = 2;i <= num - 1;i++){
         if(num % i == 0){
           flag = false;               //不是素数为false
           break;
         }
     }
      if (flag){
        count++;
       System.out.println(num);     //输出素数
       if(count%8 == 0){            //一行输出8个数
          System.out.println();
       }

    }
  }
}
}

 18

java里if里的return继续执行 java if then_java里if里的return继续执行_22

/*
数据: pi i 公式
步骤:
1.输入i的值
2.将重复运算的用for语句
2.输出pi的值
*/
import java.util.Scanner;
class Demo03_18{
    public static void main(String[] args){
        //1.输入i的值
     Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数:");
        int i = scanner.nextInt();
         double pi = 0;
         int flag = 1;
         //2.将公式重复运算的用for语句
        for(int j = 1;j <= 2 * i - 1;j++){
            pi = pi + (flag / (2 * j - 1);
            flag = -flag;
        }
        pi = 4 * pi;
        //3.输出pi的值
        System.out.println("   "+pi);
    }
}

 19

java里if里的return继续执行 java if then_java里if里的return继续执行_23

/*
数据:输入的数
步骤:
1.提示输入数字
2.循环检查最大数,并计数,数字为0,结束循环
3.输出最大的数并且输出有多少个
*/
import java.util.Scanner;
class Demo03_24{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int num=0;
        int max=0;
        int count=0;
        //1.提示输入数字
        System.out.print("请输入数字:");
        //2.循环检查最大数,并计数
        while(true){
            num=scanner.nextInt();
            if(num==0){
                break;          //数字为0,结束循环
            }else if(num>max){  //找最大数
                max=num;
                count=1;
            }else if(num==max){  //计数
                count++;  
            }
        }
        //3.输出最大的数并且输出有多少个
        System.out.println("max="+max+",count="+count);
    }
}

 20

java里if里的return继续执行 java if then_选择_24

/*
思路分析:
闰年是能对4整除不能对100整除或者能对400整除
*/
class Demo03_20{  
    public static void main(String[] args){
      int count=0;                   //标记闰年的个数
    for(int i = 101;i <=2100;i++){ //求从101-2100的数
        if( i % 4 == 0 && i % 100 != 0 || i %400 == 0){
            count++;
            System.out.print(i+" ");     //输出闰年
            if(count % 10 == 0){            //一行输出10个数
             System.out.println();
            }
       }
    }
        System.out.println("\n闰年一共有" + count +"个");//闰年个数
  }
}

21

java里if里的return继续执行 java if then_顺序_25

/*
思路分析:
6 1  2 3 4 5 6
28  1 2 4 7 14
n   1~n/2
*/
import java.util.Scanner;
class Demo03_21{
    public static void main(String[] args){
        int s=0;
        for(int j=2;j<=10000;j++){
          for(int i=1;i<=j/2;i++){
              if(j%i==0){
                 s=s+i;
              }
          }
          if(j==s){
              System.out.print(" "+j);
          }
             s=0;
    }
}
}

 22

java里if里的return继续执行 java if then_选择_26

/*
数据:电脑随机产生的一个数字com 用户输入的一个数字usr
    0 1 2
    剪刀 石头 布
步骤:
1.提示用户输入一个数字
2.计算机随机产生一个数字
3.将两个数字进行对比,分输赢
    平局  com==usr
    用户赢 usr=0 com=2 | usr=1 com=0 | usr=2 com=1
    用户输 剩下的都是用户输

随机数
    Math.random() [0,1.0)*3 -> [0,3.0)->(int)[0,3.0)
    Random nextInt(n)
*/
import java.util.*;
class Demo03_22{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
         int count = 0;
         int flag = 0;
        while(true){    //循环进行
            System.out.print("请输入 剪刀0 石头1 布2:");
            int usr=scanner.nextInt();
            Random random=new Random();
            int com=random.nextInt(3);
            String usrStr="";
            String comStr="";
            switch(usr){
                case 0: //if usr==0
                    usrStr="剪刀"; 
                    break;
                case 1:// if usr==1
                    usrStr="石头";
                    break;
                case 2:// if usr==2
                    usrStr="布";
                    break;
            }
            switch(com){
                case 0: 
                    comStr="剪刀"; 
                    break;
                case 1:
                    comStr="石头";
                 break;
                case 2:
                    comStr="布";
                    break;
            }
            if(usr==com){
                System.out.printf("用户是%s,电脑是%s,平局",usrStr,comStr);
            }else if(usr==0&&com==2 || usr==1&&com==0 || usr==2&&com==1){
                System.out.printf("用户是%s,电脑是%s,用户赢",usrStr,comStr);
                    count++;
            }else{
                System.out.printf("用户是%s,电脑是%s,用户输",usrStr,comStr);
                    flag++;
        }
            if(count==2||flag ==2){   //电脑或用户赢两次后退出循环
            break;
        }
     }
     if(count==2){
         System.out.printf("用户赢");
     }else{
         System.out.printf("用户输");
     }  
        
  }
}

 23

java里if里的return继续执行 java if then_循环_27

/*
数据:输入的数
步骤:
1.提示输入数字
2.循环对二求余数,并赋予字符串binStr
3.输出binStr
思路分析:
12/2 6 ~ 0
6/2  3 ~ 0
3/2  1 ~ 1
1/2  0 ~ 1
1100
*/
import java.util.Scanner;
class Demo03_23{
    public static void main(String[] args){
        //1.提示输入数字
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int num=scanner.nextInt();
        //2.循环对二求余数,并赋予字符串binStr
        String binStr="";
        while(true){
            binStr=num%2+binStr;//"1100"
            num/=2;
            if(num==0){
                break;
            }
        }
        //3.输出binStr
        System.out.println(binStr);
    }
}

24

/*
数据:输入的数
步骤:
1.提示输入数字
2.循环检查最大数,并计数,数字为0,结束循环
3.输出最大的数并且输出有多少个
*/
import java.util.Scanner;
class Demo03_24{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int num=0;
        int max=0;
        int count=0;
        //1.提示输入数字
        System.out.print("请输入数字:");
        //2.循环检查最大数,并计数
        while(true){
            num=scanner.nextInt();
            if(num==0){
                break;          //数字为0,结束循环
            }else if(num>max){  //找最大数
                max=num;
                count=1;
            }else if(num==max){  //计数
                count++;  
            }
        }
        //3.输出最大的数并且输出有多少个
        System.out.println("max="+max+",count="+count);
    }
}