实验4 选择结构程序设计
班级 姓名 学号
java switch case string一、实验目的
1. 掌握关系运算符、逻辑运算符和条件运算符的使用;
2. 学会正确书写关系表达式、逻辑表达式和和条件表达式;
3. 熟练掌握三种if语句和if语句的嵌套;
4. 熟练掌握switch语句。
二、实验学时数
3学时
三、实验步骤
(一)阅读程序
1. 输入并运行以下程序,观察运行结果。
public class Ch41 {
public static void main(String []args){
int a,b,c;
a=10;
b=60;
c=30;
if(a>b) a=b;
b=c;
c=a;
System.out.println("a="+a+",b="+b+",c="+c);
}
}
分析结果 | a=10,b=30,c=10 |
运行结果 | |
2. 输入并运行以下程序,观察运行结果。
public class Ch42 {
public static void main(String []args){
int x=60,a=30,b=20;
int v1=3,v2=8;
if(a<b)
if(b!=15) x=1;
else x=10;
x=-2;
System.out.println("x="+x);
}
}
分析结果 | x=-2 |
运行结果 | |
3. 输入并运行以下程序,观察运行结果。
public class Ch43{
public static void main(String []args){
int i=1;
switch(i)
{ case 1: System.out.printf("%d\t",i++);
case 2: System.out.printf("%d\t",i++);
case 3: System.out.printf("%d\t",i++);
case 4: System.out.printf("%d\t",i++);
}
System.out.println("i="+i);
}
}
分析结果 | 1 2 3 4 i=5 |
运行结果 | |
4.若x=12,则以下程序运行的结果是
import java.util.*;
public class Ch44{
public static void main(String []args){
int x,y;
System.out.print("请输入一个整数:");
Scanner in=new Scanner(System.in);
Int();
y=x>12?x+10:x-12;
System.out.println("y="+y);
}
}
分析结果 | y=0 |
运行结果 | |
(二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。
1.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在_______上填写正确内容。
import java.io.*;
public class Ch45 {
public static void main(String[] args) throws IOException{
char ch ;
System.out.print("请输入一个字符:");
ch=(char)ad();
if (ch>='A'&&ch<='Z' )
ch+=32;
else if (ch>='a'&&ch<='z' )
ch-=32;
System.out.println("ch="+ch);
}
}
2.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在_______上填写正确内容。
import java.util.*;
public class Ch46{
public static void main(String []args){
float a,b,c,s,area;
System.out.println("请输入三边长:");
Scanner in=new Scanner(System.in);
Float();
Float();
Float();
if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a )
{
s=(a+b+c)/2;
area= (float)Math.sqrt(s*(s-a)*(s-b)*(s-c));
System.out.printf("三角形的面积为:%f\n",area);
if( a==b&&b==c )
System.out.printf("等边三角形\n");
else if( a==b||b==c||c==a )
System.out.printf("等腰三角形\n");
else if((a*a+b*b==c*c)|| (a*a+c*c==b*b)|| (c*c+b*b==a*a))
System.out.printf("直角三角形\n");
else System.out.printf("一般三角形\n");
}
else System.out.printf("不能组成三角形\n");
}
}
3.输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5 天即本年的第几天,特殊情况,闰年且输入月份大于3 时需考虑多加一天。
import java.util.*;
public class Ch47{
public static void main(String []args){
int day,month,year,sum=0,leap;
System.out.println("please input year,month,day:");
Scanner in=new Scanner(System.in);
year= in.nextInt();
month = in.nextInt();
day= in.nextInt();
switch(month)/*先计算某月以前月份的总天数*/
{
case 1: sum=0 ;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default: System.out.println("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||( year%4==0&& year%100!=0 ))/*判断是不是闰年*/
leap=1;
else
leap=0;
if( leap==1&&month>2 )/*如果是闰年且月份大于2,总天数应该加一天*/
sum++ ;
System.out.printf("It is the %dth day. \n ",sum);
}
}
(三)编写程序
1. 输入某学生的成绩(成绩为100分制整数,如果输入的成绩不在0-100之间,请给出出错提示。),经判断处理后给出学生的等级,等级分类如下:
90分以上(包括90): A
80至90分(包括80):B
70至80分(包括70):C
60至70分(包括60):D
60分以下: E
import java.util.*;
public class Ch48 {
public static void main(String[] args) {
int score;
System.out.print("请输入一个分数:");
Scanner in = new Scanner(System.in);
score = in.nextInt();
char grade;
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else {
grade = 'F';
}
System.out.println("grade=" + grade);
}
}
2.输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3)
import java.util.Scanner;
public class Ch49 {
public static void main(String[] args) {
int n,n0,n1,n2;
System.out.print("请输入一个三位数:");
Scanner in = new Scanner(System.in);
n = in.nextInt();
n2=n / 100;
n1=n / 10 % 10;
n0=n % 10;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论