Chiqish ekranida hech narsa ko'rinmaydi

Men chindan ham oddiy kodni ishlab chiqishga urinaman, lekin qachon uni foydalanuvchi tomonidan kiritilgan ma'lumotni olish uchun dastlabki ma'lumotni chop etishga harakat qilsam, chiqish ekranida hech narsa ko'rinmaydi.

Kodi:

public static void main(String args[]){
    Scanner sc = new Scanner(System.in);
    int grade[] = new int[3];

    for(int i = 0; i < grade[i]; grade[i]++){
    System.out.println("Input the student's degree");
    grade[i] = sc.nextInt();
        if(grade[i] < 10 ){
            grade[i] += 0.5;
        }
        System.out.println(grade[i]);
    }       
}

Bu erda muammoni chindan ham ko'ra olmayapman. Kimdir hayron bo'lsa, men Eclipse Neon 0.2 IDE dan foydalanmoqdaman. O'qiganingiz uchun tashakkur

1
grade.length bilan sinf [i] ni almashtiring.
qo'shib qo'ydi muallif Grzegorz Górkiewicz, manba

8 javoblar

sinf [] bo'sh, shuning uchun for-loop hech qachon yugurmaydi. Int-qator 0 bilan boshlanadi.

4
qo'shib qo'ydi
Crap, siz haqsiz (aslida juda ko'p), men (..., grade [i]) ishora qilish o'rniga "(...; i ++)" qo'shib qo'yishim kerak edi. Rahmat!
qo'shib qo'ydi muallif VTR, manba

kodingizni qayta yozishingiz kerak, bu sizning o'xshash namunalar kodi bo'lib, ba'zi o'zgarishlar bilan.

import java.util.Scanner;//import scanner package
public class demo {
    public static void main(String args[]){

           //create  a scanner
            Scanner sc = new Scanner(System.in);

           //double data type array
            double grade[] = new double[3]; 

            for(int i = 0; i < grade.length; i++){
            System.out.println("Input the student's degree");

           //input double data type value
            grade[i] = sc.nextDouble();
                if(grade[i] < 10 ){
                    grade[i] += 0.5;
                }
                System.out.println(grade[i]);
            }       
    }
}
1
qo'shib qo'ydi
namuna uchun rahmat, lekin mening kodim bilan muammoni tushuntirib berasizmi?
qo'shib qo'ydi muallif VTR, manba

Bu erda sizning kodingiz ozgina o'zgarishlarga ega.

import java.util.Scanner;//import scanner package
public class demo{
    public static void main(String args[]){

   //create a scanner
    Scanner sc = new Scanner(System.in);


    //create a double data type array
    double grade[] = new double[3];

   //create a for loop with modified condition
    for(int i = 0; i <= grade[i]; grade[i]++){

   //prompt input message
    System.out.println("Input the student's degree");

   //assign a double data type value
    grade[i] = sc.nextDouble();

   //test if grade is less than 10
        if(grade[i] < 10 ){
            grade[i] += 0.5;
        }
        System.out.println(grade[i]);
    }       
}
}
1
qo'shib qo'ydi

Oddiy qator bo'sh. Barcha indekslarda 0 mavjud. [0] = 0, sinf [1] = 0 va boshqalar ... Shuning uchun loop hech qachon yugurmaydi va hech narsa bo'lmaydi.

0
qo'shib qo'ydi
tushuntirish uchun tashakkur.
qo'shib qo'ydi muallif VTR, manba

grade [i ] qiymatining qiymati nolga teng emas. Shunday qilib, siz loopga kirmayapsiz.

 for(int i = 0; i < grade[i]; grade[i]++){
//                  ^^^^^^^^ here 

Buni ko'ring:

for(int i = 0; i < 3; i++){
0
qo'shib qo'ydi
Rahmat, bu ham ishlaydi!
qo'shib qo'ydi muallif VTR, manba

Bu sizni tushunishga yordam beradi:

    int grade[] = new int[3];

Yuqoridagi kod ostida ushbu qatorni qo'shing.

    System.out.print(grade[0]); 
0
qo'shib qo'ydi

Ehtimol, shunday:

public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int grade[] = new int[3];

for(int i = 0; i < grade.length; i++){
    System.out.println("Input the student's degree");
    grade[i] = sc.nextInt();
    if(grade[i] < 10 ){
        grade[i] += 0.5;
    }
    System.out.println(grade[i]);
}       

}

0
qo'shib qo'ydi

Buni ilgari loop uchun sinab ko'ring

Scanner sc = new Scanner(System.in);
        int grade[] = new int[3];
        System.out.println("Input the student's degree");
        grade[0] = sc.nextInt();
        grade[1] = sc.nextInt();
        grade[2] = sc.nextInt();
0
qo'shib qo'ydi
Bu ham ishlaydi, rahmat! Ammo kodimni o'qigan yoki tahlil qiladigan kishi uchun bu biroz ko'proq shov-shuvga sabab bo'lmaydimi?
qo'shib qo'ydi muallif VTR, manba
unda siz shunga o'xshash ketma-ketlikning int grade [] = new int [sc.nextint ()] dinamik ravishda sozlash uchun foydalanishingiz mumkin;
qo'shib qo'ydi muallif mike5026, manba