Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取在if-else语句中启动的值以在语句外部使用?_Java_If Statement - Fatal编程技术网

Java 如何获取在if-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

你好,我是一个菜鸟,我在做这个节目时遇到了困难。我想知道是否有什么办法可以让else语句中的值在语句本身之外使用,或者以其他方式工作。假设当数组中有10个奇数时,程序停止,我尝试将其放入do while循环中,如果else语句检测到奇数,则分配变量k以添加1个值,但k的值仅在else语句中可用

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