首页 > 编程语言 > 详细

04747_Java语言程序设计(一)_第2章_运算和语句

时间:2016-12-29 07:37:26      阅读:359      评论:0      收藏:0      [点我收藏+]

 

例2.1实现当a>b成立时,输出a,否则,输出b。

 

		if(a>b)//询问a>b是否成立
		{
			System.out.println("MAX="+a);//a>b成立时的工作
		}
		else
		{
			System.out.println("MAX="+b);//a>b不成立时的工作
		}

 

例2.2若存于变量ch中的字符为大写英文字母,则将它改为对应的小写英文字母。

 

		if(ch>=‘A‘&&ch<=‘Z‘)/*大写英文字母*/
		{
			ch=ch+‘a‘-‘A‘;/*减去大写‘A‘的代码,加上小写‘a‘的代码*/
		}

 

例2.3已知三角形的三条边长a、b、c,求三角形的面积。

 

		if(a+b>c && b+c>a && c+a>b)
		{
			float s;/*因为由多个语句组成,必须用花括号括住,变成复合语句*/
			s=(a+b+c)/2.0;
			area=Math.sqrt(s*(s-a)*(s-b)*(s-c));//调用数学类的方法
		}
		else
		{
			area=0.0;
		}

 

例2.4根据考试成绩score输出对应文字。

 

		if(score>90)
		{
			System.out.println("A");
		}
		else if(score>=80)
		{
			System.out.println("B");
		}
		else if(score>=60)
		{
			System.out.println("C");
		}
		else
		{
			System.out.println("F");
		}

 

例2.5已知天气情况wCon,安排相应活动。

		switch(wCon)//由于使用了break,正确实现要求
		{
		case 1:System.out.println("上街购物!\n");break;
		case 2:System.out.println("去游泳!\n");break;
		case 3:System.out.println("在家看电视!\n");break;
		default:System.out.println("错误选择!\n");
		}

 

例2.6计算

y(x)=sin(x) 0.5<=x<1.5

y(x)=ln(x) 1.5<=x<4.5

y(x)=exp(x) 4.5<=x<7.5

 

		switch((int)(x+0.5))
		{
		case 1:y=Math.sin(x);break;
		case 2:
		case 3:
		case 4:y=Math.log1p(x);break;
		case 5:
		case 6:
		case 7:y=Math.exp(x);break;
		default:System.out.printf("自变量x值超出范围\n");break;
		}

 

例2.7用while语句,输出数列1至n。

 

		int count =1;//从1开始	
		while(count<=n)
		{
			if(count<n)
			{
				System.out.print(count+",");//两个数之间用逗号分隔
			}
			else
			{
				System.out.print(count);//最后一个数输出后换行
			}
			
			count++;//count增1,准备输出下一个数
		}

 

例2.8用do..while语句计算整数n的十进制数位数。

 

		int c=0;
		do
		{//因循环体含有两个语句,将它们写成复合语句
			n/=10;c++;
		}
		while(n!=0);//结果在变量c中

 

例2.9用for语句,求

s=1+2+3+...+100

代码如下:

		int s=0;
		int i=0;
		
		for(s=0,i=1;i<=100;i++)
		{
			s+=i;
		}

 

例2.10已知直角三角形每边长为25以内的整数,求出所有这样的直角三角形三边长。

 

public class Example2_10
{
	public static void main(String[] args)
	{		
		int a,b,c;
		for(c=3;c<=25;c++)
		{
			for(b=1;b<=c;b++)
			{
				for(a=1;a<=b;a++)
				{
					if(a*a+b*b==c*c)
					{
						System.out.println("A="+a+"\tB="+b+"\tC="+c);
					}
				}
			}
		}	
	}
}

 

例2.11甲,乙,丙三位球迷分别预测已进入半决赛的四队A、B、C、D的名次如下:

甲预测:A第一名、B第二名;

乙预测:C第一名、D第三名;

丙预测:D第二名、A第三名。

设比赛结果,四队名次互不相同,并且甲、乙、丙的预测各对了一半。试求A、B、C、D四队的名次。

 

public class Example2_11
{
	public static void main(String[] args)
	{		
		int a,b,c,d;boolean t;
		for(a=1;a<=4;a++)
		{
			for(b=1;b<=4;b++)
			{
				if(b==a)/*两队名次不可相同,取下一个b值*/
				{
					continue;
				}
				
				for(c=1;c<=4;c++)
				{
					if(c==a || c==b)/*取下一个c值*/
					{
						continue;
					}
					
					d=10-a-b-c;/*四队名次之和为10*/
					t=((a==1) != (b==2)) && ((c==1) != (d==3)) && ((d==2)!= (a==3));
					
					if(t)
					{
						System.out.println("A="+a+",B="+b+",C="+c+",D="+d);
					}
				}
			}
		}	
	}
}

 

例2.12求50以内的质数。

 

public class Example2_12
{
	public static void main(String[] args)
	{		
		int i,j;
		for(j=2;j<=50;j++)//求50以内的质数
		{
			for(i=2;i<=j/2;i++)
			{
				if(j%i==0)
				{
					break;
				}
			}
			
			if(i>j/2)//从2开始至j/2都不能整除j
			{
				System.out.println("\t"+j+"是质数");
			}
			else//空操作
			{
				
			}
		}
	}
}

 

例2.13一个程序包声明的例子。

 

package myPackage;
public class Example2_13
{
	public static void main(String[] args)
	{		
		int sum=0,i,j;
		for(i=1;i<=100;i++)//找出100以内的质数
		{
			for(j=2;j<=i/2;j++)
			{
				if(i%j==0)
				{
					break;
				}
			}
			
			if(j>i/2)
			{
				System.out.println(" 质数:"+i);
			}
		}
	}
}

 

例2.14对于给定的n,输出2n+1行2n+1列星号。

 

import javax.swing.*;
public class Example2_14
{
	public static void main(String[] args)
	{		
		int n,j,k,space;
		String result=(String)JOptionPane.showInputDialog(null,"请输入一个整数","输入对话框",JOptionPane.PLAIN_MESSAGE,null,null,null);
		n=Integer.parseInt(result);//将输入字符串转换成整数
		space=40;//设中间位置位于第40个字符位置
		
		for(j=0;j<=n;j++,space-=2)
		{
			for(int i=0;i<space;i++)
			{
				System.out.print(" ");/*输出space个空格符*/
			}
			for(k=1;k<=2*j+1;k++)/*输出2*j+1个星号*/
			{
				System.out.print(" *");
			}
			System.out.print("\n");
		}
		
		space+=4;/*下半部的第一行比上半部的最后一行后移两个位置*/
		
		for(j=n-1;j>=0;j--,space+=2)
		{
			for(int i=0;i<space;i++)
			{
				System.out.print(" ");/*输出space个空格符*/
			}
			for(k=1;k<=2*j+1;k++)/*输出2*j+1个星号*/
			{
				System.out.print(" *");
			}
			System.out.print("\n");
		}
	}
}

 

例2.15编制输入整数,输出小于等于这个整数的全部质数的程序。

 

import javax.swing.*;
public class Example2_15
{
	public static void main(String[] args)
	{
		long m,n,k;
		int j;/*用于控制每行输出10个质数,作为已输出质数个数的计数器*/
		String result=(String)JOptionPane.showInputDialog(null,"请输入一个整数(>2)","输入对话框",JOptionPane.PLAIN_MESSAGE,null,null,null);
		m=Integer.parseInt(result);//将输入字符串转换成整数
		System.out.print("\t2");//输出第一个质数2
		j=1;//已输出1个质数
		for(n=3L;n<=m;n+=2)//对于3至m的整数逐一考察
		{
			for(k=3L;k*k<=n;k+=2L)//用3至n的平方根内的奇数k,测试对n的整除性
			{
				if(n%k==0)
				{
					break;//测试k对n的整除性,若能整除结束测试
				}
			}
			
			if(k*k>n)//对于所有的k都不能整除n,则n是质数
			{
				if(j++%10==0)
				{
					System.out.println();//每输出10个质数换行
				}
				System.out.println("\t"+n);
			}
		}
		
		System.out.println();
	}
}

 

04747_Java语言程序设计(一)_第2章_运算和语句

原文:http://www.cnblogs.com/denggelin/p/6231123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!