Java控制结构

本文介绍了Java控制结构,包括求解一元二次方程的根,使用if语句判断月份所属季节,以及通过while、switch和递归方法求1~100的和,最后讲解了do-while语句在求1/n和序列中的应用。
摘要由CSDN通过智能技术生成

Java控制结构

一、求一元二次方程的根
解题思路:

  1. 一元二次方程的解有两种情况:有根或者无根
  2. 有根的求根公式:
    在这里插入图片描述
  3. 无根的公式:b*b-4ac<0
import javax.swing.JOptionPane;
public class Formula{
    public static void main(String[] args){
           double a,b,c;
           String str;
           str=JOptionPane.showInputDialog("请输入a:");   //输入系数a,b,c的值
           a=Double.parseDouble(str);
           str=JOptionPane.showInputDialog("请输入b:");
           b=Double.parseDouble(str);
           str=JOptionPane.showInputDialog("请输入c:");
           c=Double.parseDouble(str);
           double x1=1.0;  double x2=1.0; double i=0.0;    //变量初始化赋值
           i=b*b-4*a*c;      
           if(i>=0){
               x1=((-b)+Math.sqrt(i))/(2*a); 
               x2=((-b)-Math.sqrt(i))/(2*a);
                   if(i==0){
                	       System.out.println("方程有唯一根:"+x1);
                   }
                   else {
                	       System.out.println("方程的第一个根:"+x1);
                           System.out.println("方程的第二个根:"+x2);
                  }
           }
           else 
                  if(i<0)     //如果b*b-4ac小于0,方程无根
                       System.out.println("此方程无根");
     }
}      

二、用if 语句判断一个月份属于一年中的哪个季节。
(12,1,2月属于冬天;3,4,5月属于春天;6,7,8月属于夏天;9,10,11月属于秋天)

解题思路:主要是考察条件语句if ……else if……的使用,以及判断条件时注意使用"或||“还是"且&&”

public class Year{
  public static void main(String[] args){
	 int num;
	 String str;
	 str=JOptionPane.showInputDialog("输入月份:");
	 num=Integer.parseInt(str);
     System.out.print(num+"月份");
     if(num==12||num==1||num==2) System.out.println("是冬天");
     else if(num==3||num==4||num==5) System.out.println("是春天");
          else if(num==6||num==7||num==8) System.out.println("是夏天");
              else if(num==9||num==10||num==11) System.out.println("是秋天");
    }
}

使用switch语句改写上面程序

import javax.swing.JOptionPane;
public class Year{
   public static void main(String[] args){
	int num;
	String str;
	str=JOptionPane.showInputDialog("输入月份:");
	num=Integer.parseInt(str);
   System.out.print(num+"月份");
   if(num>0&&num<13){       
	  switch(num){
		 case 12:case 1: case 2:System.out.println("是冬天");break;
		 case 3: case 4: case 5:System.out.println("是春天");break;
		 case 6: case 7: case 8:System.out.println("是夏天");break;
		 case 9: case 10: case 11:System.out.println("是秋天");break;
		 default:
		}
	 }
  }
}

三、求1~100的和

  • 使用while语句
public class Addition{
	public static void main(String[] args) {
      int sum=0,n=1;
		while(n<=100) {
			sum+=n;
			n++;
		}
		System.out.println("1+2+……+99+100="+sum);
		System.out.println("n="+n);
	}
}
  • 递归方法
public class Addition{
	public static int add(int n){
		int sum;
		if(n==1){      //递归出口
			return 1;
		}else
			sum=n+add(n-1);
	     	return sum;
}
	public static void main(String[] args){
		System.out.println("1+2+……+99+100="+add(100));  //调用递归函数
	}	
}

四、求1+1/2+1/3…+1/n的和。

  • do-while语句
public class Sum{
	public static void main(String[] args) {
       public static void main(String[] args){
			String str;
			int n=0; double sum=0;int i=1;
			str=JOptionPane.showInputDialog("请输入n");
		    n=Integer.parseInt(str);
		    System.out.println(n);
		    do{
		    	sum=sum+1.0/i;                 //注意:整数/整数=整数
                i++;
		    	}while(i<=n);
		    System.out.println("1+1/2+…+1/n="+sum);
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值