Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

変数iが認識されないエラー

実行環境はwin8でJDK8.1のEclipse4.4preiudesデス
サンプルのプログラムを作っていて、コメントアウトしている。forブロック内で宣言したローカル変数が認識されません。
グローバル変数じゃないので、forの外に参照しに行ってるとかはないと思うのですが。


ソースコードは↓に書きました

public class Sample7_5 {
    //static void = staticフィールド||クラスフィールド(クラス変数や定数が入る)
    public static void main(String[] args){
        int[] ArPoints;
        ArPoints =new int[30];
        
        ArPoints[0] = 90;
        ArPoints[1] = 62;
        ArPoints[2] = 76;
                    /*for(最初に実行するステートメント; 処理条件i<(任意の値or,length);  forブロック内のステートメント実行後、実行するステートメント){
                        ステートメント文(繰り返し処理内容)
                    }*/
        //配列ArPoints[]入力、通常for文

        for(int i = 3; i < 15; i++){
            ArPoints[i] = 75;
        }
        //ArPoints.length=30(element=0~29)
        /*for(int i = 15; i < ArPoints.length; i++);{
            int i;
            //iを初期化していませんと出る
            ArPoints[i] = 70;
        }*/
        
        //合計
        double sumPoint = 0;
                //通常のfor文の場合
                /*
                 * for(int i= 0; i < ArPoints.length; i++){
                 * int point = points[i];
                 * sumPoint = sumPoint + point;
                 *}
                 */
                /* 拡張for文の使用 *
                 *for(forブロック内で要素にアクセスするための変数:対象の配列の){
                 *ステートメント(繰り返し処理の内容)
                 */
        
        for(int point:ArPoints){
            sumPoint = sumPoint + point;
        }
        //平均
        double averagePoint = sumPoint / ArPoints.length;
        System.out.println("このクラスの平均点は" + averagePoint + "点です");
        
        for(int i =0; i < ArPoints.length; i++){
            System.out.println("出席番号" + (i+1) + "番は" + ArPoints[i] + "点です");
        }    
    }
}
正しく書いたプログラムでも、indentifierエラーをはくこともあるのです。
これは、Java自体が壊れているのでしょうか?

5

回答

5197

閲覧

5件の回答

評価

0

提示されたコードをターミナルでコンパイルして実行したら問題なく
行きました。
Eclipse側の問題であると思われます。
プロジェクトのクリーンやEclipseもしくはPCの再起動をしてみては
どうでしょうか?

評価

0

ありがとうございました。
終了してから再起動したら、
!ENTRY org.eclipse.core.resources 4 2 2015-08-13 23:19:29.483
!MESSAGE プラグイン "org.eclipse.core.resources" からのコードの起動で問題が発生しました。
!STACK 0

org.eclipse.swt.SWTException: Widget is disposed
    at org.eclipse.swt.SWT.error(SWT.java:4441)
    at org.eclipse.swt.SWT.error(SWT.java:4356)
    at org.eclipse.swt.SWT.error(SWT.java:4327)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:476)
    at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:348)
    at org.eclipse.swt.widgets.Tree.getSelection(Tree.java:3446)
    at org.eclipse.jface.viewers.TreeViewer.getSelection(TreeViewer.java:232)
    at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:311)
    at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2547)
    at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2974)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
    at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:366)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1497)
    at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:521)
    at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1286)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1456)
    at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1274)
    at com.eclipserunner.views.impl.RunnerView$3.run(RunnerView.java:415)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:4734)
    at com.eclipserunner.views.impl.RunnerView.refresh(RunnerView.java:413)
    at com.eclipserunner.views.impl.RunnerView$2.resourceChanged(RunnerView.java:182)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:378)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1498)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2322)
    at org.eclipse.debug.core.model.Breakpoint.setAttribute(Breakpoint.java:209)
    at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.decrementInstallCount(JavaBreakpoint.java:861)
    at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.deregisterRequest(JavaBreakpoint.java:275)
    at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.removeRequests(JavaBreakpoint.java:775)
    at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.removeFromTarget(JavaBreakpoint.java:716)
    at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.removeAllBreakpoints(JDIDebugTarget.java:1569)
    at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.cleanup(JDIDebugTarget.java:1526)
    at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.shutdown(JDIDebugTarget.java:1660)
    at org.eclipse.jdt.internal.debug.core.JDIDebugPlugin.stop(JDIDebugPlugin.java:345)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$4.run(BundleContextImpl.java:827)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$4.run(BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.stop(BundleContextImpl.java:820)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.stopWorker0(EquinoxBundle.java:950)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.stopWorker(EquinoxBundle.java:324)
    at org.eclipse.osgi.container.Module.doStop(Module.java:626)
    at org.eclipse.osgi.container.Module.stop(Module.java:488)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1623)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1542)
    at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:248)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:145)
    at org.eclipse.osgi.container.Module.doStop(Module.java:626)
    at org.eclipse.osgi.container.Module.stop(Module.java:488)
    at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:186)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:160)
    at java.lang.Thread.run(Unknown Source)

と出ました。

再起動してみます。


評価

0

うまくいかなければ

Eclipse起動時にエラーが出てしまって起動することができません。
昨日まで... - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q119794
4586

とか読んでみると解決するかもしれません。
それでもダメならエラーメッセージでググるといいですよ。

評価

0

Java初心者なのでわからないですけど
int iを何度も宣言しているとエラーになるんでは?
宣言はそのメソッドが呼ばれたときに一度だけ通るようにしないと、まずいような気がします

でも
エラー情報みてると全然違う原因みたいですね

org.eclipse.swt.SWTException: Widget is disposed

をKEYに英語になりますがなるべく海外サイトで検索しましょう


http://stackoverflow.com/questions/19615286/org-eclipse-swt-swtexception-widget-is-disposed-when-trying-to-open-androidma

ここに
 I was copying and pasting .java and .xml files from one project to another. I still don't know what caused it
とあります
原因となっているマニフェストファイルをローカルにコピーすれば発生しなくなるのかもしれませんね

評価

0

Eclipse自体をマトモに起動できてなくて、コンパイルがちゃ
んと走ってない可能性。
Eclipse再インストールがいいかも。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。