程序流程控制

顺序结构

程序执行顺序

分支结构

if - else

结构:二选一

if(表达式){//    boolean 类型
执行语句;   }  
else {//可选
执行语句; }

注意: 对于条件表达式;
1.若多个条件表达式,之间是互斥关系(没有交集的关系)
判断执行语句声明在上,下都无关紧要;
2.有交集,要根据实际情况,考虑清楚将哪个结构声明在上面
3.包含关系:通常将范围小的声明在范围大的上面,否则范围小的无法被执行输出;
4.if-else 结构可嵌套
5.if或else下只有一条语句可不加花括号
6.就近原则

swatch - case

结构:

swatch(表达式){
case 常量1:
执行语句1;
//break; 可选
case 常量2:
执行语句2;
//break;
........
default://可选
执行语句 n;
//break;
}

说明:

  1. 根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配,进入执行相应语句,执行完后,继续向下执行,直至遇到break或default或程序结束;
  2. break 可选,作用:跳出switch -case 结构
  3. switch - case 结构中只能是 6种数据类型之一:byte 、short、char、int、枚举类型(jdk5.0新增)、string(jdk7.0新增);
  4. case 之后只能声明常量,不能声明范围
  5. default 相当于if-else中的else
  6. 若 switch-case 结构中多个case 语句相同,可以合并
  7. 可以用switch-case 结构都可用 if - else ,反之不成立

循环结构

四要素

① 初始化条件

②循环条件

③循环体

④迭代条件

for 循环

结构:

for(①;②;④){
  ③;
}

while 循环

结构:

①;
while(②){
 ③;
 ④;
 }

do-while循环

结构:

①;
do{
③;
④;
} while(②);//至少会执行一次循环体

循环嵌套:
1.内层循环遍历一遍,只相当于外层循环执行循环体一次
2.外层循环控制行数,内层循环控制列数;
代码:

//请输入年月日,输出该天是当年的第几天?
import java.util.Scanner; 
public class DaysNumber {
	public static void main(String[] args) {
		int number=0;
		// TODO Auto-generated method stub
		 Scanner reader=new Scanner(System.in);
		System.out.println("请输入year:");
		int year=reader.nextInt();
		System.out.println("请输入month:");
		int month=reader.nextInt();
		System.out.println("请输入day:");
		int day=reader.nextInt();
		switch(month) {//月份一旦进入case,当前case下面的语句都会执行
		case 12:
			number+=30;
		case 11:
			number+=31;
		case 10:
			number+=30;
		case 9:
			number+=31;
		case 8:
			number+=31;
		case 7:
			number+=30;
		case 6:
			number+=31;
		case 5:
			number+=30;
		case 4:
			number+=31;
		case 3:
			if(year%4==0&&year%100!=0||year%400==0) {//判断是否是闰年
				number+=29;
			}else {
				number+=28;
			}
		case 2:
			number+=31;
		case 1:
			number+=day;
		}
		System.out.println(year+"年"+month+"月"+day+"是"+year+"的第"+number+"天");//输出
	}

}

package demo;
//输出
/*  * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    * 

*/
public class Ling {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1;i<6;i++) {
			for(int j=1;j<6-i;j++) {
				System.out.print(" ");
			}
			for(int k=1;k<i+1;k++) {
				System.out.print("* ");
			}
			System.out.println();
		}
		for(int i=1;i<5;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(" ");
			}
			for(int k=1;k<6-i;k++) {
				System.out.print("* ");
			}
			System.out.println();
		}
		
	}

}

//求100以内的质数;
//最小的质数为2
public class PrimeNumber {  
	public static void main(String[] args) {
		boolean flag=true;//标识i%j是否为0,一旦为0,修改其值
		for(int i=2;i<=100;i++) {//遍历1-100
		
			flag=true; //重置flag
			//for(int j=2;j<i;j++) {
			for(int j=2;j<=Math.sqrt(i);j++) {//优化二:对本身质数也有效
				if(i%j==0) {
				flag=false;//若取余为0 改变flag的值
				break;//  优化一:只对非质数 有效
				//
				}
			}
			if(flag==true) {
				System.out.print(i+"  ");
			}
		}
	}
}
//从键盘输入若干数,分别统计输入的正数个数和负数的个数,输入0结束
import java.util.Scanner;//导包
public class Zero {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int count=0;
		int single=0;
		Scanner reader=new Scanner(System.in);//实例化
		while(true) {//不限制循环次数
			System.out.print("请输入一个数:");
			int  num= reader.nextInt();//读取
			if(num>0) {
				count++;
			}
			else if(num==0) {
				break; //跳出循环
			}
			else {
				single++;//计输入的负数的个数
			}
		}
		System.out.println("正数有"+count);//输出
		System.out.println("负数有"+single);
	}
}
//从键盘输入两个数,输出最大公约数和最小公倍数;
import java.util.Scanner;//导包
public class Numb {
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);//实例化
		System.out.println("请输入第一个正整数:");//提示语句
		int m=reader.nextInt();
		System.out.println("请输入第二个正整数:");
		int n= reader.nextInt();
		
		int min=(m>n)?n:m;//三元运算符求较小值最大公约数小于两个数中的较小数
		int num;
		for(int i=min;i<=min;i--) {//从大到小遍历
		 if(m%i==0&&n%i==0){
			 System.out.print("最大公约数为:");
			 System.out.println(i);
			 break;	 
		 } 
		}
		int max=(m>n)?m:n;
		for(int i=max;i<=m*n;i++){//最小公倍数范围
			if(i%m==0&&i%n==0) {
				System.out.println("最小公倍数为:"+i);
				break;
			}
		}
		
	}
}

//九九乘法表;
public class Muti {

	public static void main(String[] args) {
		
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(j+"*"+i+"="+j*i+"    ");	
			}
			System.out.println();
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值