Java 如何获取在if-else语句中启动的值以在语句外部使用?
你好,我是一个菜鸟,我在做这个节目时遇到了困难。我想知道是否有什么办法可以让else语句中的值在语句本身之外使用,或者以其他方式工作。假设当数组中有10个奇数时,程序停止,我尝试将其放入do while循环中,如果else语句检测到奇数,则分配变量k以添加1个值,但k的值仅在else语句中可用Java 如何获取在if-else语句中启动的值以在语句外部使用?,java,if-statement,Java,If Statement,你好,我是一个菜鸟,我在做这个节目时遇到了困难。我想知道是否有什么办法可以让else语句中的值在语句本身之外使用,或者以其他方式工作。假设当数组中有10个奇数时,程序停止,我尝试将其放入do while循环中,如果else语句检测到奇数,则分配变量k以添加1个值,但k的值仅在else语句中可用 publicstaticvoidmain(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); int num[]=新int[100]; System.out.println(“当输入1
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int num[]=新int[100];
System.out.println(“当输入10个奇数时,该程序停止”);
做{
int j=0;
int k=0;
对于(int i=0;i代码中的问题是变量k
的范围,该变量仅在do while循环内可用,而while(k!=11);
在循环外
因此,必须在循环外部声明k
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int num[]=新int[100];
int k=0;
System.out.println(“当输入10个奇数时,该程序停止”);
做{
int j=0;
对于java
中的(int i=0;i),无法从父作用域访问在内部作用域{}
中声明的变量。这意味着在本例中:
if(x==2){
int k=10;
}否则{
int j=300;
}
您无法访问k
或j
在您的代码中,由于k
是在do while
范围内声明的,因此可以从if else
语句中访问它。问题是,由于k
是在do while
范围内声明的,因此每次执行do
时,您的k
都会用值0重新定义de>
解决方案是在父作用域中声明k
,即main
作用域:
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int num[]=新int[100];
int k=0;
int j=0;
System.out.println(“当输入10个奇数时,该程序停止”);
做{
对于(int i=0;i