Java的while嵌套一个switch要注意什么吗?为啥我的程序运行是错的?求教

提问:Java的while嵌套一个switch要注意什么吗?为啥我的程序运行是错的?求教

import java.util.*;public class xh_while{ public static void main(String[] args){ Scanner wst=new Scanner(System.in); System.out.println("请输入学员的姓名:"); String student=wst.next(); int subject=1; int sum=0; while(subject<=3){ switch(subject){ case 1: System.out.println("请输入"+student+"的语文成绩"); int mk=wst.nextInt(); int yw=mk; break; case 2: System.out.println("请输入"+student+"的英语成绩"); int mm=wst.nextInt(); int yy=mm; break; case 3: System.out.println("请输入"+student+"的数学成绩"); int mmm=wst.nextInt(); int sx=mmm; break; } subject++; } sum=yw+yy+sx; System.out.println(student+"学生的总成绩是"+sum); }}

网友回答:

你要注意变量作用域

JAVA程序块内定义的变量 ,只能在程序块内使用

如你的

  int mk=wst.nextInt();

            int yw=mk;

只能用于

  case 1:  到 break间,出了这个范围就不能用了

你的

    sum=yw+yy+sx;

中的yw,yy,sx都是没有定义的变量

所以尽量在一个函数内且是程序开头定义变量,不要随时定义变量(特别是初学,对作用域概念不很清)

改好的程序:

import java.util.*;

public class xh_while{

    public static void main(String[] args){

    Scanner wst=new Scanner(System.in);

    System.out.println("请输入学员的姓名:");

    String student=wst.next();

    int subject=1;

    int sum=0;

    int yw=0,yy=0,sx=0;

 

   while(subject<=3){

        switch(subject){

            case 1:

            System.out.println("请输入"+student+"的语文成绩");

             yw=wst.nextInt();

            break;

            case 2:

            System.out.println("请输入"+student+"的英语成绩");

            yy=wst.nextInt();

 

            break;

            case 3:

            System.out.println("请输入"+student+"的数学成绩");

            sx=wst.nextInt();

 

            break;

            }

 

        subject++;

     }

    sum=yw+yy+sx;

   System.out.println(student+"学生的总成绩是"+sum);

  }

}


相关推荐

java 的for 循环中打印输出的空格被覆盖

java 的for 循环中打印输出的空格被覆盖

Java的概念和定义是什么?

Java的概念和定义是什么?

Java的概念和定义是什么?

Java的概念和定义是什么?

java的学习过程中会涉及到数据库的设计和开发的内容吗

java的学习过程中会涉及到数据库的设计和开发的内容吗

基于java的物联网云平台管理系统设计的研究方法可以有哪些

基于java的物联网云平台管理系统设计的研究方法可以有哪些

使用Java的方法查找数组当中的所有偶数,并返回一个新的数组。

使用Java的方法查找数组当中的所有偶数,并返回一个新的数组。

比较C语言与java的字符数据类型

比较C语言与java的字符数据类型

C语言和JAVA的区别和联系?

C语言和JAVA的区别和联系?

python比java的优势?

python比java的优势?

Java常量的概念

Java常量的概念

Java程序开发的网站, 用什么类型的空间?

Java程序开发的网站, 用什么类型的空间?

java技术的关键在哪里,怎么看相关的教学质量?

java技术的关键在哪里,怎么看相关的教学质量?

java不同的命名空间中它们能相互访问吗

java不同的命名空间中它们能相互访问吗

java项目的主界面

java项目的主界面

我的世界Java版的问题

我的世界Java版的问题

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1