流程控制习题(二)
1.已知判断闰年的规则是:能被4整除,但是不能被100整除。或者能被400整除。打印从1900年至2050年期间所有的闰年。
int y = ;//定义一个变量 年份y
for(y=1900;y<=2050;y++){ //循环遍历
if((y%4==0 && y%100!=0)||(y%400==0)) //闰年条件
{
System.out.println(y); //打印年份
}
}
2.使用while/do-while/for循环三种方式打印100以内4的倍数
int x =1;
while(x<=100) //条件表达式
{
if(x%4==0) //条件
{
System.out.println(x);
}
x++; //循环语句
}
int x = 1;
do
{
if(x%4==0)
{
System.out.println(x);
}
x++;
}while(x<=100);
for(int x =1; x<=100; x++)
{
if(x%4==0)
{
System.out.println(x);
}
}
3.输入数量不确定的正数和负数(一次输入一个),然后打印整数和负数的个数,当输入0时,程序停止
(1)
int[] s; //定义一个数组
s=new int[100]; //变量
int i,zheng=0,fu=0; //定义变量
Scanner sc=new Scanner(System.in); //创建Scanner对象
for(i=0;i<100;i++){ //循环遍历
s[i]= sc.nextInt();
if(s[i]==0) //输入0,程序停止
{
break;
}
if(s[i]>0)//数大于0,为正数
{
zheng++;
}
if(s[i]<0) //数小于0,为负数
{
fu++;
}
}
System.out.println("正数的个数"+zheng); //打印个数
System.out.println("负数的个数"+fu);
(2)
Scanner scanner = new Scanner(System.in);
int num ;//num用来保存从控制台输入的整数
int zheng=0;
int fu=0;
do
{
System.out.println("请输入整数");
num = scanner.nextInt();
if(num>0)
{
zheng++;
}else if(num<0)
{
fu++;
}else
{
break;
}
}while(true);
System.out.println("正数的个数"+zheng); //打印个数
System.out.println("负数的个数"+fu);
4.输入序号选择不用的功能
Scanner sc = new Scanner(System.in);
for(int a=0; a<3; a++)
{
System.out.println("*******************");
System.out.println("1.管理员 2.顾客 3.退出");
System.out.println("请输入数字选择登录");
int b =sc.nextInt();
if(b==1)
{
System.out.println("管理员登录过程省略");
}
else if(b==2)
{
System.out.println("顾客登录过程省略");
}
else if(b==3)
{
System.out.println("系统退出");
}
}
5.编写程序,设计一个图平面积计算,选择不同的图形输入数字计算面积,选择4退出程序。
Scanner sc = new Scanner(System.in);
for(int a=0; a<3; a++)
{
System.out.println("计算面积");
System.out.println("1.矩形 2.三角形 3.圆 4.退出");
System.out.println("请选择数字对应的功能");
int b = sc.nextInt();
if(b==1)
{
System.out.println("你选择了矩形");
System.out.println("请输入矩形的长");
int x =sc.nextInt();
System.out.println("请输入矩形的宽");
int y = sc.nextInt();
System.out.println("矩形的面积为:"+x*y);
} else if(b==2)
{
System.out.println("你选择了三角形");
System.out.println("请输入三角形的底长");
int s =sc.nextInt();
System.out.println("请输入三角形的高");
int m = sc.nextInt();
System.out.println("矩形的面积为:"+s*m/2);
}else if(b==3)
{
System.out.println("你选择了圆");
System.out.println("请输入圆的半径");
int d =sc.nextInt();
System.out.println("矩形的面积为:"+3.14*d*d);
}else if(b==4)
{
System.out.println("退出");
}
}
6.要求用户输入用户名和密码,只要不是admin和111就提示用户名或密码不正确,请重新输入。正确时结束循环,提示登陆成功
Scanner scanner = new Scanner(System.in);
String user;
String pwd;
boolean flag = false;
do
{
System.out.println("请输入用户名");
user = scanner.nextLine();
System.out.println("请输入密码");
pwd = scanner.nextLine();
if("admin".equals(user) && "111".equals(pwd))//打印登录成功,结束while
{
System.out.println("登陆成功");
//让while 后的条件变成flase
break;
}else//用户名或密码有误的情况。继续执行do-while
{
System.out.println("用户名或密码不正确");
//让while 后的条件变成true
flag =true;
}
}while(flag);
7.使用for循环方式计算2+4+6+…+100的值
int x=0;
for(int i=0;i<=100;i++){
if(i%2==0){
x=x+i;
}
}
System.out.println(x);
8.编写Java程序,在控制台上打印出九九乘法表(两种)
for(int a=1; a<=9; a++){
for(int b=1; b<=a; b++)
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
for(int a=1; a<=9; a++){
for(int b=1; b<=9; b++)
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
9.不断要求用户输入一个数字(假定用户输入的数字都是正整数),当用户输入end的时候显示刚才输入数字中的最大值。
Scanner scanner = new Scanner(System.in);
String input;//接收从控制台输入的字符串
int num;
int max =0;//存储最大的数
do
{
System.out.println("请输入一个字");
input =scanner.nextLine();
if("end".equals(input))
{
//结束while
break;
}else
{
//说明是数字,跟最大的那个比较
num =Integer.parseInt(input);
if(num>max)
{
max=num;
}
}
}while(true);
System.out.println("最大值是:"+max);
10.输入一个整数,判断这个数字是不是质数
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int a = input.nextInt();
boolean isF = true;
for(int i=2;i<a;i++)
{
if(a%i==0){
isF = false;
break;
}else{
continue;
}
}
if(isF){
System.out.print(a+"是质数");
}else{
System.out.print(a+"不是质数");
}
11.打印出100以内的质数,一行显示5个,(质数是只能被1跟自身整除的数,1不是质数)
int i=100;
int n=0;
for(int j=2;j<i+1;j++){
int a=j;
int c=1;
for(int b=2;b<a;b++){
if(a%b==0){
c=0;
break;
}
}
if(c==1){
System.out.print(j+",");
n=n+1;
if(n%5==0){
System.out.println();
}
}
}
12.某城市出租车计费问题:
Ø每日06:00-21:00,起步价6元,当日22:00-次日05:00,起步价7元。
Ø起步价包含2公里,超出部分按照每公里1.5元收费。
Ø每次乘车加收1元的燃油附加税。
输入打车的时间和距离,计算本次打车的费用。
Scanner sc = new Scanner (System.in);
System.out.println("请输入您上车时间");
int a = sc.nextInt();
if(a>=6 && a<=21)
{
System.out.println("距离");
int b = sc.nextInt();
double x=(6+(b-2)*1.5);
System.out.println("打车费用:"+x);
}else if(a>=22 && a<=24)
{
System.out.println("距离");
int c = sc.nextInt();
double y=(7+(c-2)*1.5);
System.out.println("打车费用:"+y);
}else if(a>=0 && a<=5)
{
System.out.println("距离");
int d = sc.nextInt();
double z=(7+(d-2)*1.5);
System.out.println("打车费用:"+z);
}