java中 使用switch语句实现学生成绩等级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 使用switch语句实现学生成绩等级相关的知识,希望对你有一定的参考价值。

步骤如下:

package t2;

import java.util.Scanner;

public class test 
public static void main(String[] args) 
for(;;)

Scanner input = new Scanner(System.in);
System.out.println("请输入学生的分数:");
double score = input.nextDouble();
int level1,level2;
if(score>=90.0 && score<=100.0) level1 = 1;

else if(score>=80.0) level1 = 2;
else if(score>=70.0) level1 = 3;
else if(score>=60.0) level1 = 4;
else level1 = 5;

if(score>=85.0&&score<=100.0)level2 = 1;
else if(score>=70.0)level2 = 2;
else if(score>=60.0)level2 = 3;
elselevel2 = 4;
switch(level1)


case 1:
System.out.print("该生的成绩等级是:  优");
break;
case 2:


System.out.print("该生的成绩等级是:  良");
break;
case 3:


System.out.print("该生的成绩等级是:  中");
break;
case 4:


System.out.print("该生的成绩等级是: 及格");
break;


case 5:
System.out.print("该生的成绩等级是: 不及格");
break;


switch(level2)

case 1:
System.out.println("   A ");
break;


case 2:
System.out.println("   B ");
break;


case 3:
System.out.println("   C ");
break;


case 4:
System.out.println("   D ");
break;

    

结果:

拓展资料

JAVA抽象类:规定一个或多个抽象方法的类别本身必须定义为abstract,抽象类只是用来派生子类,而不能用它来创建对象。

final类:又称“最终类”,它只能用来创建对象,而不能被继承,与抽象类刚好相反,而且抽象类与最终类不能同时修饰同一个类。

参考技术A

#include <stdio.h>

int main()

double score;

int nKey;

while (scanf_s("%lf", &score) == 1)

if (score < 0 || score > 100)

printf("请输入0-100范围内的分数\\n");

continue;

nKey = (int)score / 10;

switch (nKey)

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:

printf("E\\n");

break;

case 6:

printf("D\\n");

break;

case 7:

printf("C\\n");

break;

case 8:

printf("B\\n");

break;

case 9:

case 10:

printf("A\\n");

break;

default:

break;

return 0;

扩展资料:

switch用法

一般形式:

switch(表达式) 

case 常量表达式1:  语句1;

case 常量表达式2:  语句2;

… 

case 常量表达式n:  语句n;

default:  语句n+1;

意思是先计算表达式的值,再逐个和case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行default后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有case后的语句。

与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句;而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case语句。

在每一case语句之后增加break 语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

参考资料来源:switch-百度百科

参考技术B

[java] view plain copy
import java.util.Scanner;  
public class Text3  
public static void main(String[] args)  
System.out.println("请输入成绩");  
Scanner a = new Scanner(System.in);  
int a1= a.nextInt();  
switch (a1/10)  
case 10:  
case 9:  
System.out.print("A");  
break;  
case 8:  
System.out.println("B");  
break;  
case 7:  
System.out.println("C");  
break;  
case 6:  
System.out.println("D");  
default:  
System.out.println("E");  
break;  
 
a.close();  
 

 


拓展资料:

switch语句只能进行等值判断,而且如果满足条件没有break的话,程序会继续继续执行下一条语句,直到遇到break跳出程序,或者将整个判断遍历一遍。

参考技术C switch(score)
case 100:
case 99:
...
case 90:
System.out.println("A");
break;
case 89:
case 88:
...
case 80:
System.out.println("B");
break;
...
参考技术D //通过控制台输入分数
public static void main(String[] args) System.out.println("请输入分数:");
Scanner input=new Scanner(system.in);
int i=input.nextInt();
i=i/10;
switch(i) case 10: case 9: System.out.println("A"); break;
case 8: System.out.println("B"); break;
case 7: System.out.println("C"); break;
case 6: System.out.println("D"); break; default: if(i>=0&& i<=10)System.out.println("E"); else System.out.println("输入的数不是有效分数");
break; 或者 switch (i) case 100: case 90:
System.out.println("分数是" + i + " 等级为A"); break;
case 80: System.out.println("分数是" + i + " 等级为B"); break;
case 70: System.out.println("分数是" + i + " 等级为C");
case 60:System.out.println("分数是" + i + " 等级为D");
default: if(i>=0&& i<=10) System.out.println("分数是" + i + " 等级为E");
elseSystem.out.println("输入的数不是有效分数"); break;

作业二

1.判断成绩等级。

给定一百分制成绩,要求输出成绩的等级。90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出“输入数据错误”。 分别用if和用switch语句实现。

if 语句

# include <stdio.h>
int main ()
{
   int grade;
   printf ("请输入成绩:\n");
   scanf ("%d",&grade);
   if (grade>=100&&grade<=0)
   {
      printf("输入错误\n");
   }
   else if (grade>=90)
   {
       printf("A\n");
   }
   else if (grade>=80)
   {
       printf("B\n");
   }
   else if (grade>=70)
   {
       printf("C\n");
   }
   else if (grade>=60)
   {
       printf("D\n");
   }
    else if (grade<=60)
   {
       printf("E\n");
   }
    return 0;
}

技术分享

实验总结:1.if()后不用加;

             2.# include后是<>,不是()。

switch 语句

# include <stdio.h>
int main ()
{
    int grade;
    printf("请输入成绩:\n");
    scanf("%d",&grade);
 if (grade>100||grade<0)
 {
     printf("error\n");
 }
 else
    switch(grade/10)
    {
       case 10:
       case 9:printf("A");break;
    case 8:printf("B");break;
       case 7:printf("C");break;
       case 6:printf("D");break;
    default : printf("E");
    }
 return 0;
}

 技术分享

 

 实验结论:1.注意成绩在0~100

               2.注意phrintf加()

               3.swith语句在每句case后加break

               4.记得最后写default,其后不加break

2.判断整数位数及逆序输出。

   输入一个不多于5位数的正整数,判断它是几位数并逆序输出。注意验证数据的合法性。

# include<stdio.h>
int main()
{
   int a,b,c,d,e,f,g;
   printf("请输入一个不多于五位的正整数");
   scanf("%d",&a);
   if (a>100000||a<0)
   {
      printf ("error\n");
   }
    else if (a/10000!=0)
    {
      b=a/10000;
      c=a%10000/1000;
      d=a%1000/100;
      e=a%100/10;
      f=a%10;
      g=f*10000+e*1000+d*100+c*10+b;
      printf("次数是五位数,它的逆序是%05d\n",g);
    }
    else if (a>1000&&a<10000)
    {
      b=a/1000;
      c=a%1000/100;
      d=a%100/10;
      e=a%10;
      g=e*1000+d*100+c*10+b;
      printf("次数是四位数,它的逆序是%04d\n",g);
    }
          else if (a>100&&a<1000)
    {
      b=a/100;
      c=a%100/10;
      d=a%10;
     
      g=d*100+c*10+b;
      printf("次数是三位数,它的逆序是%03d\n",g);
    }
        else if (a>10&&a<100)
    {
      b=a/10;
      c=a%10;
      g=c*10+b;
      printf("次数是二位数,它的逆序是%02d\n",g);
    }
        else if (a<10)
    {
     printf("次数是一位数,无逆序");
    }
    return 0;
}

 

技术分享

实验结论:1.要考虑周全;

               2.注意逆序的那些式子

               3.要考虑首位是0时。

   3. 回文数问题

        给定一个5位数,判断它是否是回文数。例如:12321是回文数。回文数的特点是个位和万位相同,十位和千位相同。

# include <stdio.h>
int main ()
{
   int a,b,c,d,e;
   printf("请输入一个五位数");
   scanf("%d",&a);
   b=a/10000;
   c=a/1000%10;
   d=a/10%10;
   e=a%10;
   if (b==e&&c==d)
   {
      printf("次数是回文数");
   }
   else
   {
       printf("次数不是回文数");
   }
   return 0;
}

技术分享

实验结论:注意“=”和“==”的不同

 4. 计算分段函数

        y=-x+2.5                         0 <= x < 5

        y=2-1.5(x-3)(x-3)        5 <= x < 10

        y=x/2-1.5                     10 <= x < 20

       输入x的值(x为整数),输出y的值,结果保留3位小数。

# include <stdio.h>
int main ()
{
  int x;
  double  y;
  printf(" 输入x的值(x为整数)");
  scanf("%d",&x);
  if (x>=0&&x,5)
  {
       y=-x+2.5; 
   printf("%.3lf",y);
  }
  else if(x>=5&&x<10)
  {
      y=2-1.5*(x-3)*(x-3);      
   printf("%.3lf",y);
  }
  else if (x>=10&&x<20)
  {
      y=x/2-1.5;
   printf("%.3lf ",y);
  }
  return 0;
}

 技术分享

实验结论:1 double对应的是%lf

               2.乘号不能省略

                3.注意y的值是保留三位小数

 

 

 

    

以上是关于java中 使用switch语句实现学生成绩等级的主要内容,如果未能解决你的问题,请参考以下文章

java中 使用switch语句实现学生成绩等级

用Java中的Switch语句编写出成绩的等级划分!

采用switch语句设计一个程序,对给定的学生成绩score评判其等级这个程序怎么编啊??

用switch语句怎样判断成绩的等级

java编写程序:输入一个学生的成绩,给出相应的等,(用switch语句实现:0-59:D 60-69:C 70-84:B 85-100:A

switch语句的例子都有哪些?