三大基本结构(顺序、选择、循环)

三大基本结构

顺序结构

  1. 表达式语句:x=3;x++;等等
  2. 输出函数语句:print();println,+(算术加法,字符串连接)
  3. 键盘输入语句:import,Scanner,sc.nextInt()/nextDouble()

选择结构(的三种方式)

  1. 条件表达式 a>b?a:b a<b?b:a (a>b&&a>c)?a:(b>c?b:c)

  2. if语句

    • 两种基本形式

      • if(表达式){语句序列}
      • if(表达式){语句序列 1}else{语句序列2}
    • 嵌套的if语句:结构里嵌套同结构的语句

      Scanner sc=new Scanner(System.in);
      	double n;
      	System.out.println("请输入n的值");
      	n=sc.nextDouble();
      	if(n<0) System.out.print("n<0");
      	    else if(n==0) System.out.print("n=0");
      	       else System.out.print("n>0");
      
  3. switch语句

    • switch(表达式) {
      case 常量1:[语句序列]
      ……
      case 常量n:[语句序列]
      [default:语句序列]
      }

    • ①表达式只能是整型字符型枚举String型

      ②常量不可重复

      ③各常量之间没有顺序要求

循环结构

  1. while

    while(表达式){循环体语句;}

    false跳出循环

    例:

    	int  i,  sum;
        sum = 0;
        i = 1;
        while(i <= 5) {//循环条件
            sum += i;  //计数器
            i++;	   //累加器
        }
        System.out.print("和 ="+ sum);//输出为"和=15"
    
  2. do while

    do{循环体}while(表达式)

    false跳出循环

    int  i,  sum;
        sum = 0;
        i = 1;
        do {
            sum += i;	 //计数器
            i++;		//累加器
        } while(i <= 5); //循环条件
        System.out.printf("sum ="+ sum);//输出为"sum=15"
    
  3. for

    for(表达式1; 表达式2; 表达式3) {

    ​ 循环体;

    }

    说明:

    • 三个表达式均可省略,但分号不能缺;
    • 表达式2如果缺省,缺省值为true。
    • 如果循环体只有一条语句,则大括号可省略。
    int sum=0;
           for (int i=0;i<=100;i++){
               sum+=i;
           }
           System.out.println("零到一百的各个数之和"+sum);
    
    增强型for循环(用于数组或集合)
		int[] arr = {1, 2, 3};
        for (int i : arr) //遍历数组
        	System.out.println(i);
  1. break和continue

    • break是结束本循环

    • comtinue是结束本次循环

示例

选择

if

  1. 输入一个年份,判断是否闰年。
    import java.util.*;
    public class HI{
    	public static void main(String[]agrs) {
    		int year;
    		Scanner sc=new Scanner(System.in);
    		System.out.print("请输入年份:");
    		year=sc.nextInt();
    		if(year%4==0&&year%100!=0||year%400==0) {System.out.println("该年是闰年");}
    			else {System.out.println("该年不是闰年");}
    	}
    }
    
  2. 求小写字母在小写字母表中的序号,若不是小写字母,则序号为0。
import java.util.*;
public class HI{
   public static void main(String[]agrs) {
   char ch;
   int n;
   Scanner sc=new Scanner(System.in);
   
   System.out.print("请输入一个小写字母");
   ch=sc.next().charAt(0);
   
   if(ch<='z'&&ch>='a') {n=ch-'a'+1;}
   	else {n=0;}
   System.out.println("这个字母在字母表中的序号为"+n);
   }
}
  1. 输入一个字符,判断是小写字母、大写字母、数字字符、特殊字符。
import java.util.*;
public class HI{
   public static void main(String[]agrs){
   	char ch;
   	String str;
   	Scanner sc=new Scanner(System.in);
   	System.out.print("请输入一个字符");
   	ch=sc.next().charAt(0);
   	
   	if(ch<='z'&&ch>='a') {str="是小写字母字符";}
   		else {if(ch>='A'&&ch<='Z'){str="是大写字母字符";}
   			else {if(ch>='0'&&ch<='9') {str="是数字";}else{str="是其它字符";}}}
   	System.out.println(ch+str);
   }
}
  1. 计算周岁
import java.util.*;
public class First{
public static void main(String[]args){
   int yearsOld;
   int yearBirth,monthBirth,dayBirth;
   int yearNow,monthNow,dayNow;
   Scanner sc=new Scanner(System.in);
   Calendar cal=Calendar.getInstance();
   
   yearNow=cal.get(Calendar.YEAR);
   monthNow=cal.get(Calendar.MONTH);monthNow+=1;
   dayNow=cal.get(Calendar.DATE);
   System.out.println("请输入你的生日");
   System.out.println("年");
   yearBirth=sc.nextInt();
   System.out.println("月");
   monthBirth=sc.nextInt();
   System.out.println("日");
   dayBirth=sc.nextInt();

   yearsOld=yearNow-yearBirth;
   if(monthNow==monthBirth&&(dayNow<dayBirth||monthNow<monthBirth)){yearsOld-=1;}
   System.out.println("现在是"+yearNow+"年"+monthNow+"月"+dayNow+"日");
   System.out.println("你的生日是"+yearBirth+"年"+monthBirth+"月"+dayBirth+"日");
   System.out.println("你现在已经"+yearsOld+"周岁了");
}}
  1. 求三个整数的最大值
import java.util.*;
public class First{
public static void main(String[]args){
   int num1,num2,num3;
   int max;
   Scanner sc=new Scanner(System.in);
   System.out.println("请输入第一个整数:");
   num1=sc.nextInt();
   System.out.println("请输入第二个整数:");
   num2=sc.nextInt();
   System.out.println("请输入第三个整数:");
   num3=sc.nextInt();

   if(num1>=num2&&num1>=num3){max=num1;}
       else{if(num2>=num3&&num2>num1){max=num2;}
           else max=num3;}

  System.out.println("在"+num1+","+num2+","+num3+"中最大的数为:"+max);
}}
  1. 输入三个整数,按从小到大的顺序输出
import java.util.*;
public class First{
public static void main(String[]args){
   int num1,num2,num3;
   int n;
   Scanner sc=new Scanner(System.in);

   System.out.println("请输入第一个整数:");
   num1=sc.nextInt();
   System.out.println("请输入第二个整数:");
   num2=sc.nextInt();
   System.out.println("请输入第三个整数:");
   num3=sc.nextInt();

   if (num1>num2&&num1>num3){
       if (num2<num3){n=num2;num2=num3;num3=n;}}
   if (num2>num1&&num2>num3){
       if (num1>num3){n=num1;num1=num2;num2=n;}
       else {n=num1;num1=num2;num2=num3;num3=n;}}
   if (num3>num2&&num3>num1){
       if (num2>num1){n=num1;num1=num3;num3=n;}
       else{n=num1;num1=num3;num3=num2;num2=n;}}
   System.out.println("按照自小到大的顺序排列依次为:"+num3+","+num2+","+num1);
}}
  1. 输入一个整数,判断其能否被3、5、7整除,并输出以下信息之一:

​ ① 能被3、5、7整除

​ ② 能被 3、5 整除

​ ③ 能被 3、7 整除

​ ④ 能被 5、7*整除

​ ⑤ 能被 3 整除

​ ⑥ 能被 5 整除

​ ⑦ 能被 7 整除

​ ⑧ 不能被3、5、7中任何一个数整除

import java.util.*;
public class Test {
   public static void main(String[] args) {
   	int num;		
   	Scanner sc = new Scanner(System.in);
   	
   	System.out.print("请输入一个整数:");
   	num = sc.nextInt();
   			
   	if(num % 3 == 0 && num % 5 == 0 && num % 7 == 0){
   		System.out.print(num + "能同时被3、5、7整除");
   	}
   	else if(num % 3 == 0 && num % 5 == 0 && num % 7 != 0){
   		System.out.print(num + "能同时被3、5整除,但不能被7整除");
   	}
   	else if(num % 3 == 0 && num % 5 != 0 && num % 7 == 0){
   		System.out.print(num + "能同时被3、7整除,但不能被5整除");
   	}
   	else if(num % 3 != 0 && num % 5 == 0 && num % 7 == 0){
   		System.out.print(num + "能同时被5、7整除,但不能被3整除");
   	}
   	else if(num % 3 == 0 && num % 5 != 0 && num % 7 != 0){
   		System.out.print(num + "能被3整除,但不能被5、7整除");
   	}
   	else if(num % 3 != 0 && num % 5 == 0 && num % 7 != 0){
   		System.out.print(num + "能被5整除,但不能被3、7整除");
   	}
   	else if(num % 3 != 0 && num % 5 != 0 && num % 7 == 0){
   		System.out.print(num + "能被7整除,但不能被3、5整除");
   	}
   	else {
   		System.out.print(num + "不 能被3、5、7的任一个整除");
   	}
   }
}
  1. 输入你设想的月薪,计算纳税额。

    纳税方案简单如下:月薪低于5000,不纳税;5000-10000之间的部分,税率5%;高于10000-20000的部分,税率10%;高于20000,税率20%

    import java.util.*;
    public class Taxes {
    	public static void main(String[] args) {
    		int wages;
    		double taxes;
    		Scanner sc = new Scanner(System.in);
    		
    		System.out.print("请输入月薪:");
    		wages = sc.nextInt();
    		
    		//计算个人所得税
    		if(wages <= 5000){
    			taxes = 0;
    		}
    		else if(wages < 10000){
    			taxes = (wages - 5000) * 0.03;
    		}
    		else if(wages < 20000){
    			taxes = 5000 * 0.03 + (wages - 10000) * 0.1;
    		}
    		else{
    			taxes = 5000 * 0.03 + 10000 * 0.1 + (wages - 20000) * 0.2;
    		}
    
    		System.out.print ("当月薪是: " + wages + "时,纳税金额是:" + taxes);
    	}
    }
    
    
  2. 输入三个整数构成三角形,判断该三角形类型(等边、等腰、直角、等腰直角、普通三角形?),并计算这三个整数构成的三角形面积。面积公式=√[hp* (hp-a)*(hp-b) *(hp-c)],其中a,b,c是三个边长,hp是半周长
import java.util.*;
public class Test {
	public static void main(String[] args) {
		int a, b, c;
		double h, area;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请依次输入三角形的三边长:");
		a = sc.nextInt();
		b = sc.nextInt();
		c = sc.nextInt();
		
		if(a+b>c && a+c>b && b+c>a) {
			System.out.println(a +"," + b + "和" + c + "能构成三角形");
			if(a == b && b == c) {
				System.out.println("该三角形是等边三角形");
			}
			else if(a == b || a == c || b == c) {
				if(a*a+b*b==c*c || a*a+c*c==b*b || c*c+b*b==a*a) {
					System.out.println("该三角形是等腰直角三角形");
				}
				else {
					System.out.println("该三角形是等腰三角形");
				}
			}
			else if(a*a+b*b==c*c || a*a+c*c==b*b || c*c+b*b==a*a) {
				System.out.println("该三角形是直角三角形");
			}
			else{
				System.out.println("该三角形是一般三角形");	
			}
			h = (a + b + c) / 2.0;
			area = Math.sqrt(h * (h-a) * (h-b) * (h-c));
			System.out.println("面积是:" + area);
		}
		else {
			System.out.println(a +"," + b + "和" + c + "不能构成三角形");
		}
	}
}

switch

  1. 根据成绩输出相应等级

    需求规格说明:

    成绩 ------ 1个实数

    对成绩进行四舍五入后,只保留整数部分

    ​ (以下所说的成绩均表示整数成绩)

    • 当 90 <= 成绩 <= 100 时,等级为 A

    • 当 80 <= 成绩 < 90 时,等级为 B

    • 当 70 <= 成绩 < 80 时,等级为 C

    • 当 60 <= 成绩 < 70 时,等级为 D

    • 当 0 <= 成绩 < 60 时,等级为 E

    • 当 60 <= 成绩 <= 100 时,

      若成绩以 0 或 1 结尾,在字母等级后加‘-’;

      若成绩以 8 或 9 结尾,在字母等级后加‘+’;

      若成绩 = 100, 在字母等级后加‘+’。

    • 当 成绩 < 60 时,

      若成绩 < 20, 在字母等级后加‘-’;

      若成绩 >= 40, 在字母等级后加‘+’。

      • 若输入成绩 < 0.0 或 > 100.0时,输出 ”Input score error!”
            int score;
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入成绩(整数)");
            score=sc.nextInt();
            String grade=" ";
    
            if (score<=100&&score>=0){
                switch(score/10){
                    case 10:
                    case 9:
                        grade="A";
                    break;
                    case 8:
                        grade="B";
                        break;
                    case 7:
                        grade="C";
                    break;
                    case 6:
                        grade="D";
                    break;
                    default:
                        grade="E";
                    if(score>=40){grade+="+";}
                    else if(score<=20){grade+="-";}
                }
    
            if(score==100){grade+="+";};
            if(score>=60&&(score%10==9||score%10==8)){grade+="+";}
            else if(score>=60&&(score%10==1||score%10==0)){grade+="-";};
            System.out.println(score+"的等级是"+grade);}
            else System.out.println("Input  score  error!");
    
    
    1. 根据年份和月份值确定该月的天数
    int year, month;
    		int days;
    		Scanner sc = new Scanner(System.in);
    		
    		System.out.print("请输入年份值:");
    		year = sc.nextInt();
    		System.out.print("请输入月份值:");
    		month = sc.nextInt();
    		
    		switch(month) {
    		case 1:	case 3:	case 5:	case 7:	
    		case 8:	case 10:	case 12:
    			days = 31;
    			break;
    		case 4:	case 6:
    		case 9:	case 11:
    			days = 30;
    			break;
    		case 2:
    			if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
    				days = 29;
    			else
    				days = 28;
    			break;
    		default:
    			days = 0;
    		}
    		
    		if(days != 0) {
    			System.out.print(year + "年" + month + "月有" + days + "天。" );
    		}
    		else {
    			System.out.print("Input  error!");
    
    
    1. 设计一个简易的整数四则运算器,输入形如3+5的式子,会计算出运算结果
int num1, num2;
		String operator;
		double result = 0.0;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("*******四则运算*******");
		System.out.println("输入四则算式(数字和运算符间加空格,如3 + 5):");
		num1 = sc.nextInt();
		operator = sc.next();
		num2 = sc.nextInt();
		
		switch(operator) {
		case "+":
			result = num1 + num2;
			break;
		case "-":
			result = num1 - num2;;
			break;
		case "*":
			result = num1 * num2;;
			break;		
		case "/":
			if(num2 != 0) {
				result = (double)num1 / num2;
			} else {
				System.out.println("Input  error!");
				System.exit(0);
			}
			break;
		default:
			System.out.println("Input  error!");
			System.exit(0);
		}
		
		System.out.println(num1 + operator + num2 + " = " + result);

循环

while

  1. 对一个整数的基本操作。
    • 将一个整数的各位数字逆序输出。
    • 求一个整数的位数
    • 求一个整数的各位数字之和。
    • 求一个整数的各位数字最大值。
    • 求一个整数的逆序数。
import java.util.*;
public class study {
    public static void main(String[]args){
       int n, m = 0, x, a;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        n = sc.nextInt();
        a = n;//备份n
        System.out.print("逆序输出为");
        while (n != 0) {
            System.out.print(n % 10 + "\t");
            n /= 10;
        }//将一个整数的各位数字逆序输出
        n = a;
        while (n != 0) {
            n /= 10;
            m += 1;
        }
        System.out.println("这个数共有" + m + "位数字");//求一个整数的位数
        n = a;
        m = 0;
        while (n != 0) {
            m += n % 10;
            n /= 10;
        }
        System.out.println("各位数字之和为" + m);//求一个整数的各位数字之和
        n = a;
        m = 0;
        while (n != 0) {
            if (m < n % 10) {
                m = n % 10;
            }
            n /= 10;
        }
        System.out.println("各项数字最大值为:" + m);//求一个整数的各位数字最大值
        n = a;
        m = 0;
        System.out.println("逆序为");
        while (n != 0) {
            System.out.print(n % 10);
            m = m * 10 + n % 10;
            n /= 10;
        }//求一个整数的逆序数;或者while (n!=0){System.out.print(n%10);n/=10;}
    }
}
  1. 控制输入数值的范围,将输入的整数值控制在0~100之间。
import java.util.*;
public class study {
    public static void main(String[]args){
         int n;
        Scanner sc = new Scanner(System.in);

        do {
            System.out.println("输入考试成绩(0~100):");
            n = sc.nextInt();
            if (n > 100 || n < 0) {
                System.out.print("该值不允许输入,请重新");
            }
            ;
        } while (n < 0 || n > 100);
        System.out.print("成绩为:" + n);
    }
}

  1. 计算两个整数的最大公约数。
import java.util.*;
public class study {
    public static void main(String[]args){
       int m, n;
        int t;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入两个整数(用空格隔开)");
        n = sc.nextInt();
        m = sc.nextInt();
        System.out.print(m + "和" + n);
        while (n != 0) {
            t = m % n;
            m = n;
            n = t;
        }
        System.out.print("的最大公约数为:" + m);
    }
}

  1. 任意输入一行字符,统计其中的大小写字母、数字字符各有多少个。
		String str;
		int nLowercase, nUppercase, nDigit, nOther;
		int index = 0;
		char ch;
		Scanner sc = new Scanner(System.in);
		
		System.out.print("请输入一行字符:");
		str = sc.nextLine();
		
		nLowercase = nUppercase = nDigit = nOther = 0;
		while(index < str.length()){
			ch = str.charAt(index);
			if(ch >= 'a' && ch <= 'z'){
				nLowercase++;
			}
			else if(ch >= 'A' && ch <= 'Z'){
				nUppercase++;
			}
			else if(ch >= '0' && ch <= '9'){
				nDigit++;
			}
			else{
				nOther++;
			}
			index++;
		}
		
		System.out.println(str + "各种字符个数统计:");
		System.out.println("大写字母个数:" + nUppercase);
		System.out.println("小写字母个数:" + nLowercase);
		System.out.println("数字字符个数:" + nDigit);
		System.out.println("其他字符个数:" + nOther);

  1. 将一个二进制数转换为十进制数。
int nBinary, nDecimal;
		int base;
		Scanner sc = new Scanner(System.in);
		
		System.out.print("请输入只有0和1的二进制数:");
		nBinary = sc.nextInt();
		
		nDecimal = 0;
		base = 1;
		while(nBinary != 0){
			nDecimal += nBinary % 10 * base;
			base *= 2;
			nBinary /= 10;
		}
		
		System.out.println("转换为十进制是:" + nDecimal);

  1. 分解质因数。
        int n;
        int i = 2;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        n = sc.nextInt();

        System.out.print(n + "=");
        while (n > i) {
            if (n % i == 0) {
                System.out.print(i + "*");
                n /= i;
            } else i++;
        }
        System.out.print(n);
  1. 输入一些数,求最大的数。
        int num, max = 0;
        String flag;
        int count = 1;
        Scanner sc = new Scanner(System.in);
        do {
            System.out.println("请输入第" + count + "个数:");
            if (count == 1) {
                num = sc.nextInt();
                max = num;
            } else {
                num = sc.nextInt();
                if (num > max) {
                    max = num;
                }
            }
            System.out.println("是否继续输入");
            flag = sc.next();
            if ((flag.equals("Y") || flag.equals("y"))) {
                count++;
            }
        } while (flag.equals("Y") || flag.equals("y"));
        System.out.println("在这" + count + "个数中,最大值为" + max);
  1. 1+2+3+……n,求和值不超过10000的最大n值。
	    int m = 0;
        int n = 0;
        do {
            m += n;
            n++;
        } while (m < 10000);
        System.out.println("1+2+3+……+" + n + "= " + m);
        System.out.println("符合条件的最大值为" + (--n));
  1. 假设你有10万存款,一年期利率为5%,问要连续存多少年,这笔存款能超过20万?
            double save = 100000;
            int n = 0;
            double rate = 0.05;
            while (save < 200000) {
                save *= (1 + rate);
                n++;
            }
            System.out.println("至少需要连续存" + n + "年");
    

for

  1. 观察斐波那契数列前一项除以后一项的结果变化情况。
            int m, n;
            m = 1;
            n = 1;
    
            for (int i = 0; i < 20; i++) {
                System.out.println(m + " / " + n + " = " + (double) m / n);
                n = m + n;
                m = n - m;
    
            }
    
  2. 猜数字游戏:十次之内猜中一个随机生成的0-1000之内的整数。
     int nRandom, nInput;
            int i; //猜数的次数
            Scanner sc = new Scanner(System.in);
            Random rd = new Random();
    
            //nRandom = (int)(Math.random() * 1000);
            nRandom = rd.nextInt(1000);
            System.out.println(nRandom);
    
            for (i = 1; i <= 10; i++) {
                System.out.printf("请输入1000以内的整数(第%d次):", i);
                nInput = sc.nextInt();
                if (nInput > nRandom) {
                    System.out.println("太大了,重新输入!!");
                } else if (nInput < nRandom) {
                    System.out.println("太小了,重新输入!!");
                } else {
                    break;
                }
            }
            if (i > 10) {
                System.out.println("很遗憾,猜了十次都没猜对。");
            } else {
                System.out.printf("恭喜你,在第%d次猜对了.\n", i);
            }
    
  3. 求所有的三位“水仙花数”:该数等于各位数字的立方和。
            int x, y, z;
            for (int n = 100; n < 1000; n++) {
                x = n % 10;
                y = n / 10 % 10;
                z = n / 100;
                if (x * x * x + y * y * y + z * z * z == n) {
                    System.out.println(n);
                }
            }
    
  4. 求所有四位数中的“牡丹花数”:该数等于前两位和后两位之和的平方。
            int x, y;
            for (int n = 1000; n < 10000; n++) {
                x = n / 100;
                y = n % 100;
                if ((x + y) * (x + y) == n) {
                    System.out.println(n)
                }
            }
    
  5. 随机产生两个100以内的整数,计算其和并计分(每做对一题得10分,满分100)。
            int num1, num2, sum;
            int score = 0;
            Random rd = new Random();
            Scanner sc = new Scanner(System.in);
            for (int i = 1; i <= 10; i++) {
                num1 = rd.nextInt(100);
                num2 = rd.nextInt(100);
                System.out.print("第" + i + "题:");
                System.out.print(num1 + " + " + num2 + " = ");
                sum = sc.nextInt();
                if (num1 + num2 == sum) {
                    score += 10;
                    System.out.println("正确");
                } else {
                    System.out.println("错误");
                }
            }
            System.out.println("你的得分是:" + score);
        }
    
  6. 顺序分割并输出一个整数的各位数字。
    import java.util.Scanner;
    public class Report {
        public static void main(String[]args) {
            int num, reverse = 0;
            Scanner sc = new Scanner(System.in);
            System.out.println(System.in);
            System.out.println("请输入一个整数:");
            num = sc.nextInt();
            System.out.print("该整数从高位开始的各位数字是:");
            for (reverse = 0; num != 0; num /= 10) {
                reverse *= 10;
                reverse += num % 10;
            }
            for (num = 0; reverse != 0; reverse /= 10) {
                System.out.print(reverse % 10 + "  ");
            }
        }
    }
    
  7. 输出九九乘法表。
    public class Report {
        public static void main(String[]args) {
            int i,j;
            for(i=1;i<10;i++) {
                for (j = 1; j <= i; j++) {
                    if (j == i) {
                        System.out.println(i + "*" + j + "=" + i * j + "\t");
                    } else {
                        System.out.print(i + "*" + j + "=" + i * j + "\t");
                    }
                }
            }
        }
    }
    
  8. 求出1000以内的所有“完数”:该数等于它的所有约数(除了自己)之和。
    import java.util.*;
    public class Report {
        public static void main(String[]args) {
            int num, i, j;
            int sum;
    
            for(i = 1; i < 1000; i++) {
                sum = 0;
                for(j = 1; j < i; j++) {
                    if(i % j == 0) {
                        sum += j;
                    }
                }
                if(sum == i) {
                    System.out.print(i + "是完数:" + i + " = 1");
                    for(j = 2; j < i; j++) {
                        if(i % j == 0) {
                            System.out.print(" + " + j);
                        }
                    }
                    System.out.println();
                }
            }
        }
    }
    
    
  9. 输出满足以下条件的三位数:该数中没有重复的数字。
    int i, j, k;
    		int count = 0;
    		for(i = 1; i <= 9; i++) {
    			for(j = 0; j <= 9; j++) {
    				for(k = 0; k <= 9; k++) {
    					if(i != j && i!= k && j != k) {
    						System.out.printf("%-5d", 100*i+10*j+k);
    						count++;
    						if(count % 10 == 0)
    							System.out.println();
    					}
    				}
    			}
    		}
    		System.out.println("\n合计个数:" + count);
    
  10. 一行显示10个数。输出由*构成的橄榄形图形。
    int i, j, k;
    
    		for(i = 1; i <= 9; i++)
    		{
    			if(i <= 5)
    			{
    				for(j = 1; j <= 5 - i; j++)
    					System.out.print("\t");
    				for(k = 1; k <= 2 * i - 1; k++)
    					System.out.print("*");
    			}
    			else
    			{
    				for(j = 1; j <= i - 5; j++)
    					System.out.print("\t");
    				for(k = 1; k <= 19 - 2 * i; k++)
    					System.out.print("*");
    			}
    			System.out.println();
    		}
    
    
  11. abc队和xyz队对战,已知a的对手不是x,c的对手不是x和z,求问对战名单。
    		int i, j, k;
    		for(i = 1; i <= 9; i++)
    		{
    			if(i <= 5)
    			{
    				for(j = 1; j <= 5 - i; j++)
    					System.out.print(" ");
    				for(k = 1; k <= 2 * i - 1; k++)
    					System.out.print("*");
    			}
    			else
    			{
    				for(j = 1; j <= i - 5; j++)
    					System.out.print(" ");
    				for(k = 1; k <= 19 - 2 * i; k++)
    					System.out.print("*");
    			}
    			System.out.println();
    		}
    
    

break与continue

  1. 判断一个整数是不是质数。
    		int num, i;
    		Scanner sc = new Scanner(System.in);
    		
    		System.out.print("请输入一个整数:");
    		num = sc.nextInt();
    		
    		for(i = 2; i < num; i++) {
    			if(num % i == 0) {
    				break;
    			}
    		}
    		
    		if(i == num) {
    			System.out.println(num + "是质数");
    		}
    		else {
    			System.out.println(num + "不是质数");
    		}
    
    
    		int num, i;
    		int n;
    		Scanner sc = new Scanner(System.in);
    		
    		System.out.print("请输入一个整数:");
    		num = sc.nextInt();
    		
    		n = (int)Math.sqrt(num);   //循环至√num即可
    		for(i = 2; i <= n; i++) {
    			if(num % i == 0) {
    				break;
    			}
    		}
    		
    		if(i > n) {
    			System.out.println(num + "是质数");
    		}
    		else {
    			System.out.println(num + "不是质数");
    		}
    
    
    		int num, i;
    		int n;
    		boolean flag;
    		Scanner sc = new Scanner(System.in);
    		
    		System.out.print("请输入一个整数:");
    		num = sc.nextInt();
    		
    		n = (int)Math.sqrt(num);   //循环至即可
    		flag = true;
    		for(i = 2; flag && i <= n; i++) {
    			if(num % i == 0) {
    				flag = false;
    			}
    		}
    		
    		if(flag) {
    			System.out.println(num + "是质数");
    		}
    		else {
    			System.out.println(num + "不是质数");
    		}
    
  2. 输入一个正整数n,输出所有和为n的连续正整数序列。
    		int num, i;
    		int n, count = 0;
    		boolean flag;
    
    		for (num = 2; num < 200; num++) {
    			n = (int) Math.sqrt(num); 
    			flag = true;
    			for (i = 2; flag && i <= n; i++) {
    				if (num % i == 0) {
    					flag = false;
    				}
    			}
    
    			if (flag) {
    				System.out.printf("%-5d", num);
    				count++;
    				if(count % 10 == 0)
    					System.out.println();
    			}
    		}
    		System.out.println("\n200以内质数个数:" + count);
    
  3. 求1000以内最大的20个质数之和
    		int num, i;
    		int n, count = 0, sum = 0;
    		boolean flag;
    
    		for (num = 1000; num > 2; num--) {
    			n = (int) Math.sqrt(num); 
    			flag = true;
    			for (i = 2; flag && i <= n; i++) {
    				if (num % i == 0) {
    					flag = false;
    				}
    			}
    
    			if (flag) {
    				System.out.print(num);
    				count++;   //统计质数个数
    				sum += num;   //求质数累加和
    				if(count < 20){
    					System.out.print("+");
    				}
    				else{
    					break;
    				}
    			}
    		}
    		System.out.println("\n1000以内最大的20个质数之和:" + sum);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值